【发布时间】:2012-08-24 15:48:50
【问题描述】:
我的电脑上发生了一些奇怪的事情。 我在 /usr/local/bin 下安装了 gperf。 与 questionI asked here 相关,我在我的计算机上运行了一个 perl 脚本,其中包含 gperf 上的 system() 行,其标志看起来像
perl 文件:
system("gperf ...") == 0 || die "calling gperf failed: $?";
但是无论我如何努力 gperf 都不会运行并输出失败的消息
为了调试,我尝试了类似的方法
system("echo \$PATH") == 0 || die "calling gperf failed: $?";
发现它不包含我安装 gperf 的/usr/local/bin/,但只查看未安装它的usr/bin
所以$PATH 是错误的...
所以我四处搜索,发现system() 与在文件中调用 /bin/sh 相同,所以我尝试了/bin/sh 和echo $PATH,发现它包含/usr/local/bin/,令我难以置信。
所以我的问题是 system() 的 $PATH 声明在哪里?为什么它和 Bourne shell 里面的不一样?
【问题讨论】: