检查程序是否存在bash的首选方法是什么?

时间:2015-03-08 04:50:51

标签: bash shell unix

我正在编写一个脚本,它将运行用不同语言编写的程序的几个版本,因此它应该能够检测系统是否可以先运行文件。我发现this question有点用,但我想知道我的现有代码是否可以改进。

我使用以下方法检查程序是否存在。

if type "$PROGRAM" >/dev/null 2>&1; then
  # OK
fi

我在辩论这个问题是否应该放在Code Review中,但我决定在这里发布,因为它只有两行代码。

1 个答案:

答案 0 :(得分:2)

我在bash中使用它:

# Convenience method to check if a command exists or not.
function command_exists {
  hash "$1" &> /dev/null
}

这给了我一个command_exists

if command_exists "vim"; then
  echo "and there was great rejoicing!"
fi

或一次性:

command_exists "vim" && echo "and there was great rejoicing!"

function die {
  echo "$1"
  exit 1
}
command_exists "vim" || die "Vim needs to be installed"