赞助连接

赞助连接

阅 读 文 章

关于command exit status的困惑

[来源:网上转载 (http://bbs.chinaunix.net) | 作者:网友(网络转载) | 时间:2008-06-14 | 浏览:人次 ]

比如我有一个test.sh内容如下:
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 ]


原来如此,谢谢


TAG标签 : 困惑 关于 if 执行 cd directory name. 应该 missing

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表
网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.