shell脚本文件中有时候需要依据命令执行的结果状态决定整个shell脚本文件的执行路径。
一个简单的需求就是:判断某个文件中是否存在某一行内容,存在则不做任何操作,否则插入该行。
判断文件中是否存在某行,可以使用grep命令:grep $line $file
如果$file中存在$line,grep执行返回的结果为0,如果不存在返回1,如果$file文件本身不存在返回2
我们可以通过下面的shell代码进行简单的验证:
#/bin/bash
grep "abc" filename
reval=$?
echo "grep return value: $reval"
exit 0
只要将以上shell文件中的grep "abc" filename替换成其它需要的命令,就可以在执行命令的最后打印出该命令执行的结果状态。
但是每次都要修改shell文件比较麻烦,我们可以借助“··”符号实现在终端窗口下直接测试,在未闭合“·”之前,命令是不会被执行的。
:~$ echo `
> grep "abc" filename
> reval=$?
> echo "grep return value: $reval"
> exit 0
> `
grep: filename: No such file or directory
grep return value: 2
iie@haproxy091:~$
真如提示所示,为找到filename这个文件,所以grep执行返回2