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を使ってRSSコードから画像...
-
simplexml_load_file で呼び出...
-
htsp ?? <?= ?>??
-
php で C言語のdefineマクロの...
-
onedrive にexcelファイルをア...
-
こちらはただの直列処理ですか?
-
ワードプレス、Contact Form 7...
-
拡張子php画像をjpg画像等に変...
-
PHPとCSVで簡易データベースな...
-
include先でのinclude元の変数...
-
リダイレクト元のURLの取得方法...
-
メールフォームのタイトルが文...
-
php エラー
-
PHPのif文でその処理を途中で抜...
-
VBでメールを送る時のSMT...
-
one drive のアップロード失敗...
-
別PHPファイルに変数を渡す
-
ワードプレスサイト PHP8.0.25...
-
パースエラーとは?
-
Image Magickの関数が使えない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php で C言語のdefineマクロの...
-
PHP MySql ページング
-
BASIC認証のユーザー名をPHPで...
-
特定の値をPOST送信で他のサー...
-
cakephpのサブタイトルはどこで...
-
PHPのタイムアウトについて
-
simplexml_load_file で呼び出...
-
phpのエラーについて
-
同一ディレクトリの連番ファイ...
-
「include()」関数の使い方につ...
-
DBから取得した内容を横表示
-
PHPでxmlファイルへのデータの...
-
home_urlとbloginfo('url')
-
PHPとHTMLをまとめてコメントア...
-
Nowdocの機能をphp5.2で使いたい
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
index.phpに入るには、どうすれ...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
おすすめ情報