shell中关于返回值的判断

代码如下:
if a = `grep '^5' ${log} | wc -l `
RC=0
else
RC=9
fi

#####此处通过log能看见RC的值已经为9

RC=$?
case ${RC} in
0)
;;
*)
exit ${RC}
;;

#####最后却走的是RC=0的分支,请问这是为什么

$?的意思是 上一条指令的返回值
第一你的if语句不是在函数中得
第二上一条语句—if只要是执行成功没有出错 那么它的返回值一定为0
所以$?一定为0 肯定走得时RC=0的分支
你要弄清楚什么是返回值追问

哦 先谢谢你对第一个问题的指导,那怎么能获取if中RC的值呢,我想让RC=9的时候 做一些其他处理

追答

如果一定要用$?的话,请看示例

#!/bin/bash

mytest()
{
if False;then
        RC=0
        return 0
else
        RC=9
        return 9
fi
}

mytest
echo '$? is ' $?
echo 'RC is' $RC

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网