我刚刚开始学习如何制作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 (或其他程序)是运行还是不运行。
发布于 2014-10-27 20:16:15
您应该能够像这样在bash中检查命令的返回值.
somecommand argument1 argument2
RETVAL=$?
[ $RETVAL -eq 0 ] && echo Success
[ $RETVAL -ne 0 ] && echo Failure发布于 2014-10-27 20:20:30
这都取决于ncl命令的返回代码。尝试ncl并在获得错误消息后输入echo $?看看输出结果。此值为您提供以前键入的命令的返回代码,在本例中为ncl。如果值不是0,则ncl无法运行。
发布于 2014-10-29 15:29:13
谢谢马特和苏巴希尼你的回答对我很有帮助。这个问题很容易解决。按照您的建议,我创建了一个名为“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(如果工作)和其他数字(取决于问题)。
https://stackoverflow.com/questions/26596005
复制相似问题