是否在bash中有一个命令检查程序是否可以运行

时间:2014-10-27 20:12:01

标签: bash

我刚开始学习如何制作bash脚本。

我想知道是否有办法测试程序是否可以运行。例如,我想测试NCL是否运行。

如果我在终端上写NCL

xxx$ ncl
dyld: Library not loaded: /usr/local/lib/libgomp.1.dylib
  Referenced from: /usr/local/ncl-6.2.1/bin/ncl
  Reason: image not found
Trace/BPT trap: 5

这意味着已安装NCL,但由于缺少库,程序无法运行。

我想知道bash中是否有一个命令给我1或0,取决于NCL(或其他一些程序)是运行还是不运行。

3 个答案:

答案 0 :(得分:0)

您应该能够像bash这样在bash中检查命令的返回值...

somecommand  argument1 argument2
RETVAL=$?
[ $RETVAL -eq 0 ] && echo Success
[ $RETVAL -ne 0 ] && echo Failure

答案 1 :(得分:0)

这一切都取决于ncl命令的返回码。尝试ncl并在收到错误消息后输入echo $?并看到输出。此值为您提供以前键入的命令的返回码,在我们的示例中为ncl。如果该值不为0,则ncl无法运行。

答案 2 :(得分:0)

谢谢Matt和Subashini,你的答案对我帮助很大。 问题很容易解决。 根据您的建议,我创建了一个名为' ncltest.ncl'的ncl脚本文件。打开和关闭ncl只是为了检查。然后检查的bash脚本是这样的:

ncl ncltest.ncl
testfile=$?
if [ $testfile -eq 0 ]; then
 echo 'It worked'
else
 echo 'It did not work'
fi

NCL的情况下,如果工作则返回0,其他数字取决于问题。