在sh
或tcsh
我可以毫无问题地致电netstat
。但是,有了Bash,我收到了消息:
bash: netstat: command not found
所有shell的PATH变量完全相同:
PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/J6.0/bin:/EXEX/exec:/bin:/usr/sbin:/etc:/usr/lpp/perl/bin:.:/usr/lpp/ported/bin:.:.
Netstat位于/ bin目录中,因此应该包含在PATH ...
中有什么想法吗?
谢谢!
答案 0 :(得分:1)
我们还没有足够的信息来说明这里出了什么问题,但是我会走出困境并建议你的路径不是你想象的那样,更不用说你引用的路径了非常不标准,很可能不是你想要的。
你说的是你的道路......
引用的路径在分解时看起来像这样:
/usr/lpp/Printsrv/bin
/usr/lpp/java/J6.0/bin
/EXEX/exec
/bin
/usr/sbin
/etc
/usr/lpp/perl/bin
.
/usr/lpp/ported/bin
.
.
当前工作目录(.
)三次不会导致问题,但看起来确实有些奇怪。
您错过了标准目录/usr/bin
。如果你有/usr/sbin
,那么你应该/sbin
以保持一致性。
我无法想象为什么你会把/etc
放在你的道路上。该目录中永远不应该存在可执行文件。
你的道路实际上是什么......
贝壳之间应该没有区别。你不太可能在这里发现了一个shell中的bug,所以我们假设你的路径并不完全相同,并试图弄清楚它为什么会这样......
所有shell都应该告诉你,你的路径与两个命令同时存在:
# The PATH variable
echo "$PATH"
# The PATH environment variable
env | /bin/grep PATH
记住有两种变量。内部变量和环境变量。 PATH应该是一个环境变量。
我不确定你是如何找到以下一行的:
PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/J6.0/bin:/EXEX/exec:/bin:/usr/sbin:/etc:/usr/lpp/perl/bin:.:/usr/lpp/ported/bin:.:.
如果这是从.profile
或.bashrc
获取的,则应将其导出以确保将PATH设置为环境变量。
export PATH=/usr/lpp/Printsrv/bin:/usr/lpp/java/J6.0/bin:/EXEX/exec:/bin:/usr/sbin:/etc:/usr/lpp/perl/bin:.:/usr/lpp/ported/bin:.:.