dirname=$1
if cd ${dirname:?"missing directory name."}
then
echo "Success"
fi
不是说每个命令执行后通常会有一个exit status吗?正常结束返回0,如果大于0的话通常有对应的Error。那照理说,正确进入到指定目录后,if 0应该是不执行的啊,不应该再输出Success?:em14:
if 0 为什么应该不执行?
不好意思,我刚学Shell,以为if语法跟C类似,刚刚试了一下if [ 0 ] 确实会执行,可是我还是有两个问题:
如果指定的目录不存在,cd命令会报错,同时不会输出success, 说明echo没有执行,也就是if条件不成立,这时候发生了什么事情呢?如果status是个正数的话会执行的吧? 对于if感觉还比较困惑,希望达人也解下疑惑。
除了0,其他都不会执行。
if cd ${dirname:?"missing directory name."}
<==>
cd ${dirname:?"missing directory name."}
if [ $? -eq 0 ]
原来如此,谢谢
会员注册
会员登录
个人空间