我正在尝试从 php 网页上显示的命令行实用程序获取格式化的彩色输出。
我正在使用 http://www.pixelbeat.org/scripts/ansi2html.sh 中的 ansi2html.sh
如果我从命令行运行相同的命令,它可以正常工作。我在OSX上。
我正在运行的命令是:
exec ("vendor/bin/phinx migrate -e development | ../../phinx_upgrades/ansi2html.sh 2>&1", $phinx_output, $phinx_return);
我得到的输出是:
../../phinx_upgrades/ansi2html.sh: line 38: gawk: command not found
所以我假设它运行脚本,但它找不到 gawk。我做了brew install gawk
但它已经安装了。
我可以从命令行运行 gawk,gawk --version
给了我GNU Awk 4.1.1, API: 1.1
如果我问which gawk
我会得到/usr/local/bin/gawk
当我echo $PATH
时,我/usr/local/bin
视为我的道路之一。
我不熟悉OSX
,但我认为您必须gawk
文件夹添加到您的环境变量中PATH
另外,直接检查你的 bash 是否可以启动 gawk
,如果它在你的 bash 中工作正常,所以重新启动你的 Apache 服务器
希望对:)有所帮助
回答 PHP exec $PATH变量缺少元素应该为为 php 调用设置正确的$PATH提供提示。 作为快速修复,您可以编辑 ansi2html.sh 脚本以直接引用/usr/local/bin/gawk