QQ登录

只需一步,快速开始

搜索
【活动】边做笔记边学习,还能赢取奖学金!
查看: 92|回复: 0

[学习笔记] 认识bash shell4--Bash Shell使用环境之命令执行的判断依据:;,&&,||

[复制链接]
累计签到:38 天
连续签到:1 天
最佳答案
0 
发表于 2017-8-6 22:41:46 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 Zbrel 于 2017-8-7 17:47 编辑

命令执行的判断依据:;,&&,||
① cmd;cmd(不考虑指令相关性的连续指令下达)
希望可以一次执行多个指令,可以用分号(;)来隔开指令,这样,分号前的指令执行完成后就会接着执行后面的指令了。
② $? (指令回传值) 与 && 或 ||
若两个指令之间有相依性,而这个相依性主要判断的地方在于前一个指令执行的结果是否正确,就可以通过指令回传值。『若前一个指令执行的结果为正确,在 Linux 底下会回传一个 $? =0 的值』。 那么我们怎么通过这个回传值来判断后续的指令是否要执行呢?这就得要借由『&& 』及『|| 』的帮忙了!注意,两个 & 之间是没有空格的!那个 | 则是 [Shift]+[\]的按键键结果。
指令下达情况        说明
cmd1&&cmd2        1. 若 cmd1 执行完毕且正确执行($?=0),则开始执行 cmd2。
2. 若 cmd1 执行完毕且为错误 ($?≠0),则 cmd2 不执行。

cmd1||cmd2        1. 若 cmd1 执行完毕且正确执行($?=0),则 cmd2 不执行。
2. 若 cmd1 执行完毕且为错误 ($?≠0),则开始执行 cmd2。

练习:使用ls查阅目录/tmp/abc是否存在,若存在则用touch建立/tmp/abc/he
ls /tmp/abc && touch /tmp/abc/he
以 ls 测试 /tmp/vbirding 是否存在,若存在则显示 "exist" ,若不存在,则显示 "not exist"!
ls /tmp/vbirding && echo "exist" || echo "not exist"

本帖被以下淘专辑推荐:

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /2 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-8-22 17:16 Powered by Discuz! X2.5 Theme by dreambred

快速回复 返回顶部 返回列表