Unix KSH:Return 只有 1 表示任何错误,0 表示成功
Unix KSH: Return only 1 for any error and 0 for success
我有 unix shell 脚本,我在其中给出了错误和非错误的两个条件,如下所示:
脚本:Test.sh
#!/bin/sh
error1=ERROR
error2=FAIL
CheckError1=`grep $error1 proshell.sh | wc -l`
CheckErro2=`grep $error2 proshell.sh | wc -l`
if [ $CheckError1 -ge 1 ] then
exit 1
elif [ $CheckError2 -ge 1 ] then
exit 1
else
exit 0
fi
注意:问题是对于出口 1 的任何错误,我并不总是得到 1。
如何为任何错误只获取 1?
您正在检查匹配的行数,而不是grep的退出状态。
您想这样做:
error1=ERROR
error2=FAIL
file-proshell.sh
if grep -q "$error1" "$file" || grep -q "$error2" "$file"; then
exit 1
else
exit 0
fi
grep -q
抑制输出,但如果找到匹配则以成功退出状态退出
我有 unix shell 脚本,我在其中给出了错误和非错误的两个条件,如下所示:
脚本:Test.sh
#!/bin/sh
error1=ERROR
error2=FAIL
CheckError1=`grep $error1 proshell.sh | wc -l`
CheckErro2=`grep $error2 proshell.sh | wc -l`
if [ $CheckError1 -ge 1 ] then
exit 1
elif [ $CheckError2 -ge 1 ] then
exit 1
else
exit 0
fi
注意:问题是对于出口 1 的任何错误,我并不总是得到 1。
如何为任何错误只获取 1?
您正在检查匹配的行数,而不是grep的退出状态。
您想这样做:
error1=ERROR
error2=FAIL
file-proshell.sh
if grep -q "$error1" "$file" || grep -q "$error2" "$file"; then
exit 1
else
exit 0
fi
grep -q
抑制输出,但如果找到匹配则以成功退出状态退出