Shell 判断某个命令是否可用

使用系统自带命令 command -v [cmd] 来判断指定的命令是否可用。

  1. 当指定的命令可用时,会将命令所在的路径输入到标准输出,并且命令的执行完> 的退出状态码是 0
  2. 当指定的命令不可用时,没有任何输出,命令执行完的退出状态码不为 0

command -v brew # 1
echo "command -v brew 命令的退出状态是:$?" # 2

command -v vault  # 3
echo "command -v vault 命令的退出状态是:$?" # 4

上面一段脚本的输出结果为

/usr/local/bin/brew
command -v brew 命令的退出状态是:0
command -v vault 命令的退出状态是:1
  1. 第1行命令 command -v brew 检测到 brew 命令可用,并且打印出 brew 命令所在的路径。

  2. 第2行命令打印了上一行命了执行完的退出状态码是 0 ,说明 brew 命令可用。

  3. 第3行命令 command -v vault 检测到 vault 命令不可用,没有任何输出。

  4. 第4行命令打印了上一行命了执行完的退出状态码是 1 ,说明 vault 命令不可用。

$?:可以获取上一行命令的退出状态码。在 shell 脚本中,退出状态码是 0 表示成功。

使用示例

if command -v brew; then
    echo "brew 命令可用,准备安装 CocoaPods"
    brew install cocopods
fi

你可能感兴趣的:(Shell 判断某个命令是否可用)