假设我正在写一些依赖外部程序的东西,比如svn
。如何自动检查它们的存在,以便在它们不存在时打印出有用的错误消息?迭代PATH
是可能的,但很难优雅和高效。有更清洁的解决方案吗?
我在bootstrapping脚本中看到过这种行为,虽然我不记得在哪里。它看起来有点像这样:
checking for gcc... yes
答案 0 :(得分:2)
如果您使用bash,则可以使用type
内置:
$ type -f svn
svn is /usr/bin/svn
如果要在脚本中使用它:
$ type -f svn &>/dev/null; echo $?
0
$ type -f svn_doesnt_exist &>/dev/null; echo $?
1
答案 1 :(得分:0)
尝试实际调用它。
最有意义的是用-V
或其他任何使程序报告其版本的选项来调用它;大多数时候你希望程序至少是这样的版本。
如果您的程序是shell脚本,which
也是您的朋友。