2011-08-07 8 views

答えて

4

できません。しかし、c:\mingw\bin\sh -c 'set'のような独自のシェルを起動することができます。それはあなたのマシンでMingwを必要とします。 Cygwinを使用し

は、それは次のようになります。

shell_exec("C:\cygwin\bin\bash.exe --login -c '/cygdrive/c/cygwin/bin/convert.exe --version'"); 

コマンドラインの長さの制限は、それだけでワンライナーを超えている場合ので、私はそこにスクリプト自身を置くことはお勧めしません、があります。シェルスクリプトインタプリタの名前の直後にあるオプションは、インタプリタのためのものです。インタプリタが実行するスクリプトに引数を渡す場合は、変換の例では ".exe"の直後に引用符で囲む必要があります。

シェルスクリプトインタープリタにもスクリプトをパイプすることができます。そうすれば、ファイルに書き込む必要はなく、長いスクリプトを使用することもできます。

すなわち:

$ echo "echo 'Hello world';" | sh 
Hello world 

はPHPでパイプを使用する方法についてhttp://php.net/manual/en/function.proc-open.phpを参照してください。

+0

おっと、私は誤ってあなたのコメントを削除しました。ごめんなさい。私はあなたの質問に答えたと思う。 –

+0

いいえ、あなたは私の質問に答えてくれました:)ありがとう! –

関連する問題