我是一位有用的助手,可以翻译文本。
我在电脑上遇到了一些奇怪的事情。 我在 /usr/local/bin 下安装了 gperf。 与我在这里提出的问题相关,我在电脑上运行了一个包含 system() 命令和类似以下标志的 perl 脚本
然而,无论我怎样努力,gperf都无法运行并输出失败消息。
为了调试,我尝试了以下操作:
system("echo \$PATH") == 0 || die "calling gperf failed: $?";
我发现它不包含我安装gperf的/usr/local/bin/,而只查找未安装的usr/bin。
所以$PATH是错误的...
于是我在Google上搜索,发现system()与在文件中调用/bin/sh相同,因此我尝试了/bin/sh和echo $PATH,结果发现它包含了/usr/local/bin/,让我感到难以置信。
那么我的问题是:system()的$PATH在哪里声明?为什么它与Bourne shell内部的不同?
我在电脑上遇到了一些奇怪的事情。 我在 /usr/local/bin 下安装了 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是错误的...
于是我在Google上搜索,发现system()与在文件中调用/bin/sh相同,因此我尝试了/bin/sh和echo $PATH,结果发现它包含了/usr/local/bin/,让我感到难以置信。
那么我的问题是:system()的$PATH在哪里声明?为什么它与Bourne shell内部的不同?
gperf
。如果在其他系统上它在/usr/bin
或~/bin
中呢?这正是PATH
的作用。 - Gilles 'SO- stop being evil'