2

shell_exec()php 関数を使用してシェル スクリプト ループを呼び出そうとしていますが、役に立ちません。

問題なくできますshell_exec("ls")

サーバーに ssh して問題なくfor f inls; do echo $f ; doneを実行できます。

でも、この2つを組み合わせると、

shell_exec("for f in `ls` ; do echo $f ; done")

出力として何も得られません(エラーとしてNULLもありません、チェックしました)。

ここで何が欠けていますか?

PS: ここで使用している for ループは、使用するつもりのループではなく、わかりやすくするためのものです。

4

1 に答える 1

4
echo shell_exec("for f in `ls` ; do echo \$f ; done");

あなたの間違い:

  1. 逃したecho
  2. $二重引用符を使用している場合はすぐに記号をエスケープする必要があります (または、代わりに二重引用符を単一引用符に置き換えることができます)。

プロのヒント:常にerror_reportingレベルE_ALL(またはそれ以上) で開発し、display_errors 1

于 2013-05-30T00:27:43.400 に答える