Linux 查找是否';其中';命令通过BASH在系统上可用

Linux 查找是否';其中';命令通过BASH在系统上可用,linux,bash,shell,Linux,Bash,Shell,在编写BASH脚本时,我通常使用Linux机器(其中Linux机器指基于桌面的Linux操作系统,如Ubuntu、Fedora、OpenSUSE)的which命令来查找其他二进制文件的路径或可用性。我知道可以搜索路径变量集中存在的二进制文件(命令) 现在,我无法理解在机器上不存在命令的情况下如何继续 我的意图是创建一个shell脚本(BASH),它可以在机器上运行,如果环境不合适(比如脚本中使用的某些命令丢失),它应该能够正常退出 有没有人在这方面有什么建议。我知道可以使用locate或find

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

现在,我无法理解在机器上不存在
命令的情况下如何继续

我的意图是创建一个shell脚本(BASH),它可以在机器上运行,如果环境不合适(比如脚本中使用的某些命令丢失),它应该能够正常退出

有没有人在这方面有什么建议。我知道可以使用
locate
find
等方法,但同样,如果它们都不可用怎么办。我已经知道的另一个选项是,我在标准路径上查找一个
,它是
/usr/bin/
/bin/
/usr/local/bin/
之类的二进制文件。还有其他可能吗

提前谢谢

type which
type
是一个bash内置命令,因此它在bash中始终可用。有关它的详细信息,请参见
manbash

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

$ alias la='ls -l -a'
$ type la
la is aliased to 'ls -l -a'
type
是一个bash内置命令,因此它在bash中始终可用。有关它的详细信息,请参见
manbash

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

$ alias la='ls -l -a'
$ type la
la is aliased to 'ls -l -a'
(更多的是评论,因为Boldewyn的回答非常完美,但这是对这个问题的另一种看法,可能会引起一些人的兴趣。)

如果您担心有人弄乱了您的bash安装并以某种方式删除了
,那么我认为理论上,当您实际调用该命令时,您将得到127的退出代码

考虑

$ sdgsdg
-bash: sdgsdg: command not found
$ echo $?
127
bash中的退出代码:

当然,如果有人删除了其中的
,那么我也不会相信退出代码。

(更多的评论是因为Boldewyn回答得很好,但这是对一些人可能感兴趣的问题的另一种看法。)

如果您担心有人弄乱了您的bash安装并以某种方式删除了
,那么我认为理论上,当您实际调用该命令时,您将得到127的退出代码

考虑

$ sdgsdg
-bash: sdgsdg: command not found
$ echo $?
127
bash中的退出代码:

当然,如果有人删除了其中的
,那么我也不会相信退出代码。

这太棒了:)-我从来不知道这件事。非常感谢@Boldewyn。这太棒了:)-我从来不知道这件事。非常感谢@Boldewyn。