bashシェルスクリプトは例えば
test.sh:
#!/bin/sh
phpscript=`cat <<'EOF'
$x=2;
$y=3;
$z=$x+$y;
echo "{$x}プラス{$y}イコール{$z}。\n";
exit;
EOF
`
php -r "$phpscript"
と書けますが1行少なくするために
文字列変数$phpscriptを使わないで
最後の
php -r "$phpscript"
と
phpscript=`cat <<'EOF'
をまとめて
test.sh:
#!/bin/sh
php -r `cat <<'EOF'
$x=2;
$y=3;
$z=$x+$y;
echo "{$x}プラス{$y}イコール{$z}。\n";
exit;
EOF
`
としても機能しません
1行少なくするためにはどのように書けばよいのでしょうか?
よろしくお願いします
No.3ベストアンサー
- 回答日時:
ドキュメントに<?php加えていいなら
#!/bin/sh
php <<'EOF'
<?php
$x=2;
$y=3;
$z=$x+$y;
echo "{$x}プラス{$y}イコール{$z}。\n";
exit;
?>
EOF
だめでも、sedで加えれば
#!/bin/sh
sed -e '1i<?php' -e '$a?>' <<'EOF' | php
$x=2;
$y=3;
$z=$x+$y;
echo "{$x}プラス{$y}イコール{$z}。\n";
exit;
EOF
素晴らしすぎる提案ありがとうございます
PHPコードの中で"も'も`も全て使えます
スタンドアローンの素晴らしいコードができました
No.2
- 回答日時:
php部分を別ファイルにするという選択肢はないわけ?
/* test.php */
<?PHP
$x=2;
$y=3;
$z=$x+$y;
echo "{$x}プラス{$y}イコール{$z}。\n";
exit;
?>
/* test.sh */
#!/bin/sh
php -f "xxx.php";
この回答への補足
ありがとうございます
まさにご提案の方法でやっていたものを
ファイル管理を数年後に見ても混乱しないように
一つにまとめようとして今回の質問に至ったのです
バッククウォートは稀にしか使わないので妥協できるのですが
',"は頻繁に使うので使えないとしんどいです
とにかく最初のご提案のものを'を使わないように手直しして使います
何かいいアイデアがでてきたらよろしくお願いします
捕捉の追加:
最初のご提案のものを採用してみると
'は使えなくなったのですが
今度は`が使えるようになったので
$flv=shell_exec('find zmusic -name "*.flv"');
の部分を
$flv=`find zmusic -name "*.flv"`;
と書けるようになり便利になった部分もありました
ありがとうございました
No.1
- 回答日時:
クォートが競合さえしなければcatしないでもこれで十分では?
#!/bin/sh
php -r '
$x=2;
$y=3;
$z=$x+$y;
echo "{$x}プラス{$y}イコール{$z}。\n";
exit;
';
この回答への補足
ありがとうございます
その方法で今回のphpスクリプトは機能しますが
phpスクリプトの中にシングルクウォート'が含まれる場合に機能しません
実際にはphpスクリプトの中にシングルクウォート'が含まれているものに適用
しようとしているのでご提案の方法はそのままでは使えません
先の方法ではバックウォート`は使えませんが
phpではバックウォート`はあまり使わないので問題有りません
勿論`も'も使えたらベストです
phpスクリプトの中で'を使えるような方法があれば教えてください
よろしくお願いします
捕捉の追加:
例えば以下のものです(実際にはphp部分はもっと複雑です)
#!/bin/sh
phpscript=`cat <<'EOF'
$x=2;
$y=3;
$z=$x+$y;
echo '計算:';
echo "{$x}プラス{$y}イコール{$z}。\n";
exit;
EOF
`
php -r "$phpscript"
php内でshell_exec関数を使っているのでバッククウォート‘も使いたいのが本音です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxの実行結果を修正したいです。 2 2022/11/23 08:32
- UNIX・Linux デフォルト値のパラメータ展開 1 2022/08/12 17:34
- UNIX・Linux 実行の仕方及び実行結果が分かりません。 2 2022/11/17 19:31
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php で C言語のdefineマクロの...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
バッチを用いたフォルダの自動移動
-
phpとaspの違いについて
-
form actionで二つ送信先を指定...
-
phpで画像がどうしても文字化け...
-
透過PNGが透過されない!!
-
PHP8を使うと、大量のWarningが...
-
index.phpって何ですか? 具体...
-
PHPで、エラーがない場合のみ画...
-
これの対応OSを教えて下さい。p...
-
ワードプレスサイト PHP8.0.25...
-
PHPからロリポップ!のメールサ...
-
PHPで複数ファイルのダウン...
-
PHPをhtmlに読み込んだファイル...
-
chmod()で所有者が変わってしまう
-
「クラス関数」「メンバ関数」...
-
ファイルアップロードの上限を...
-
ワードプレス、Contact Form 7...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP MySql ページング
-
PHPのタイムアウトについて
-
BASIC認証のユーザー名をPHPで...
-
特定の値をPOST送信で他のサー...
-
php で C言語のdefineマクロの...
-
DBから取得した内容を横表示
-
[wordpress]外部RSSを「文字...
-
検索結果を2列で表示させたい
-
phpヒアドキュメントスクリプト...
-
■■simpleXMLでホットペッパーの...
-
PEARのHTTP_Requestをインストール
-
ヘッダーが付いた場合の、simpl...
-
phpでハイパーリンクして値を持...
-
名前空間のあるXMLからの取り出し
-
同一ディレクトリの連番ファイ...
-
RSSデータの読み込み方を教えて...
-
「include」と「file_get_conte...
-
PHP Mysql SELECTであいまい検...
-
PHP+MySQLでXMLを作成し、それ...
-
PHPでxmlファイルへのデータの...
おすすめ情報