gpt4 book ai didi

php - 在 PHP 中使用 bash shell

转载 作者:行者123 更新时间:2023-12-04 06:37:21 25 4
gpt4 key购买 nike

在我的终端窗口(使用 Max OS X)中,我的 shell 是 bash。但是,当我通过 shell_exec 或反引号运算符在 PHP 中运行命令时,我看到 PHP 正在使用 Bourne Shell (sh)。这是我所看到的一个例子:

从我的终端窗口中:

$ echo $0
- bash

另外,如果我按如下方式调用 php:
$ php -r "echo shell_exec('echo $0');"
-bash

但是,如果我使用以下内容创建一个名为 test.php 的脚本:
<?php echo shell_exec('echo $0'); ?>

然后运行 ​​test php 我得到以下信息:
$ php test.php
sh

我想在调用 shell_exec 时使用 bash shell - 为什么它选择 Bourne shell,我可以强制它使用 bash 吗?

谢谢!

最佳答案

反转第二个命令中的引号:

$ php -r 'echo shell_exec("echo $0");'
sh

使用您在问题中的引号,变量 $0在命令发送到 php 之前展开.

如果您想强制使用 Bash,您可以执行以下操作:
php -r '$cmd="echo \\\$0"; echo shell_exec("/bin/bash -c \"$cmd\"");'

关于php - 在 PHP 中使用 bash shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4701993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com