未找到 wc / cat 命令

hdf*_*hdf 5 unix bash command-line

我正在尝试运行一些使用wccat命令的简单 bash 脚本。该脚本失败了:

wc: command not found
Run Code Online (Sandbox Code Playgroud)

或者这个(在我评论了使用 wc 的字符串之后):

cat: command not found
Run Code Online (Sandbox Code Playgroud)

我不知道是怎么回事。包含完全相同的代码片段的类似脚本非常完美。这两个脚本在相同的条件下使用。除了,

machine:~ user$ which wc
/usr/bin/wc
Run Code Online (Sandbox Code Playgroud)

machine:~ user$ which cat
/bin/cat
Run Code Online (Sandbox Code Playgroud)

jim*_*-cl 4

正如@Tyson 所指出的,PATH变量保存着答案。

我只是想指出,在脚本中使用完整路径通常被认为是一种很好的做法。例如,wc您可能不想调用/usr/bin/wc. 除了解决上述问题之外,它还更安全,因为您可以防止运行某人可能使用相同名称放入您的 PATH 中的应用程序...我不记得这些攻击的名称,但您明白了 = )