【问题标题】:run php output as shell script将 php 输出作为 shell 脚本运行
【发布时间】:2015-11-18 16:32:04
【问题描述】:

我想同时使用 shell 和 php。 首先我试过: shell_exec vs 函数被禁用,必须如此。 但是 php 不允许我运行 shell_exec() 所以,我放弃并尝试制作一个.sh,调用php,将php的输出存储为sh文件并运行sh文件。 这是sh代码

#!/bin/bash/
php test.php -> running php file/ test.php saves commands in script.sh
sh script.sh -> running the commands
rm script.sh -> removing the commands

但是从这个文件过程中必须有更好的方法。 我可以直接在 .sh 文件中运行 test.php 的输出吗? 我可以运行 shell_exec 吗?

注意:我有服务器的 root 访问权限。

【问题讨论】:

  • 如果你有服务器的root访问权限,当然你可以在php.ini中启用shell_exec(),对吧?
  • 这是共享服务器,出于安全原因,我无法启用 shell_exec。

标签: php bash shell


【解决方案1】:

您可以通过管道 (|) 将 PHP 的输出传送到要执行的 sh

$ php -r 'echo "echo \$PATH";' | sh

输出:

/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/Applications/MAMP/Library/bin:/usr/local/bin:/usr/ bin:/bin:/usr/sbin:/sbin

为了简单起见,我已经阅读了一些使用-r 的语句,但是您可以通过将脚本传递给 php 从文件中读取:

$ php test.php | sh

【讨论】:

    猜你喜欢
    • 2021-09-08
    • 2012-04-05
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2012-03-28
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多