【问题标题】:How to change the shell that is used with shell_exec in PHP?如何更改 PHP 中与 shell_exec 一起使用的 shell?
【发布时间】:2011-08-07 10:04:50
【问题描述】:

我使用的是 Windows,我想设置 PHP 以使用 bash shell(感谢msysgit,安装在我的机器上)。原因是我的开发机器上有 Windows,生产机器上有 Linux。

谢谢!

【问题讨论】:

    标签: php windows shell-exec


    【解决方案1】:

    你不能。但是你可以像c:\mingw\bin\sh -c 'set' 一样启动你自己的shell。这当然需要在你的机器上安装 Mingw。

    使用 Cygwin 会是:

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

    命令行长度是有限制的,因此我不建议将脚本本身放在那里,如果它不仅仅是一个单行的话。 shell 脚本解释器名称后面的选项用于解释器。如果您想将参数传递给解释器执行的脚本,则它需要在引号内,即在转换示例中的“.exe”之后。

    您也可以通过管道将脚本传送到 shell 脚本解释器。这样一来,您就不需要将其写入文件,并且仍然可以使用长脚本。

    即:

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

    请参阅http://php.net/manual/en/function.proc-open.php 了解如何在 PHP 中使用管道。

    【讨论】:

    • 哎呀,我不小心删除了你的评论。对不起。我想我回答了你的问题。
    • 不,我这样做是因为你回答了我的问题 :) 谢谢!
    猜你喜欢
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 2011-06-23
    相关资源
    最近更新 更多