当寻找的路径,可执行文件或检查,如果你在Unix shell中输入命令的名称会发生什么,有不同的公用事业过多(which,type,command,whence,where,whereis,whatis,hash,等)。
我们经常听说which应该避免。为什么?我们应该用什么来代替?
我正在尝试编写我所有的sh启动/环境脚本,以尽可能多地使用DRY:“适用于我将其克隆到的每个 *nix”。这意味着确保如果我尝试运行不存在的代码,代码会正常失败。为此,我需要能够测试程序是否存在。我知道如何测试文件是否存在,但我不确定如何测试以查看应用程序是否在路径中可执行。我宁愿使用 $PATH,因为其中一些需要在 arch、ubuntu 和 centos 上工作。有些可能安装在我的 homedir 中,在我没有 root 的系统上,有些可能没有安装,而有些则安装在系统路径中。