4

在我shtcsh我可以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 中...

有任何想法吗?

谢谢!

4

1 回答 1

5

我们还没有足够的信息来说明这里出了什么问题,但我会冒险并建议你的路径不是你认为的那样,更不用说你引用的路径非常不-标准,很可能不是您想要的。

你说你的路...

您引用的路径分解后如下所示:

/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 中发现错误的可能性很小,因此让我们假设您的路径在每个中都不完全相同,并尝试弄清楚为什么它看起来确实如此......

所有 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:.:.
于 2015-02-02T10:50:49.213 回答