私はWindowsを使用していますので、bashシェル(msysgitのおかげで私のマシンにインストールされています)を使用するようにPHPをセットアップしたいと思います。なぜなら私は開発マシン上のWindowsと本番マシン上のLinuxを持っているからです。PHPでshell_execで使用されるシェルを変更するには?
ありがとうございます!
私はWindowsを使用していますので、bashシェル(msysgitのおかげで私のマシンにインストールされています)を使用するようにPHPをセットアップしたいと思います。なぜなら私は開発マシン上のWindowsと本番マシン上のLinuxを持っているからです。PHPでshell_execで使用されるシェルを変更するには?
ありがとうございます!
できません。しかし、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を参照してください。
おっと、私は誤ってあなたのコメントを削除しました。ごめんなさい。私はあなたの質問に答えたと思う。 –
いいえ、あなたは私の質問に答えてくれました:)ありがとう! –