鱼C论坛

 找回密码
 立即注册
查看: 3372|回复: 0

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

[复制链接]
发表于 2017-8-6 22:41:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

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鱼币 +1 收起 理由
小甲鱼 + 1

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 22:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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