我试图从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
视为我的一条路径。
答案 0 :(得分:1)
我不熟悉OSX
,但我认为您必须将gawk
文件夹添加到您的环境变量PATH
中
另外,如果你可以启动gawk
,如果你的bash工作正常,请直接检查你的bash,所以重启你的Apache服务器
希望有所帮助:)
答案 1 :(得分:1)
回答PHP exec $PATH variable missing elements应该给出为php调用设置正确的$ PATH的提示。作为快速修复,您可以编辑ansi2html.sh脚本以直接引用/ usr / local / bin / gawk