通过BASH查找系统上是否有"which"命令

Shr*_*rey 1 linux bash shell

在编写BASH脚本时,我通常使用whichLinux机器的命令(其中Linux机器指的是基于桌面的Linux操作系统,如Ubuntu,Fedora,OpenSUSE)来查找其他二进制文件的路径或可用性.据我所知,which可以搜索PATH变量集中存在的二进制文件(命令).

现在,我无法理解如何which在该机器上没有命令本身的情况下继续操作.

我的目的是创建一个可以在机器上运行的shell脚本(BASH),如果环境不够(比如缺少脚本中使用的某个命令),它应该能够正常退出.

有没有人在这方面有任何建议.据我所知,可以象使用方式locatefind等-但是,如果连他们都没有提供什么.我已经知道的另一个选择是我which在标准路径上寻找二进制的存在,如/usr/bin//bin//usr/local/bin/.还有其他可能性吗?

提前致谢.

Bol*_*wyn 8

type which
Run Code Online (Sandbox Code Playgroud)

type是一个bash内置命令,所以它总是在bash中可用.有关man bash详细信息,请参阅.

请注意,这也将识别别名:

$ alias la='ls -l -a'
$ type la
la is aliased to 'ls -l -a'
Run Code Online (Sandbox Code Playgroud)