命令执行的判断语句(; && ||)

不考虑命令相关性的连续命令执行 
cmd1;cmd2      //分号前的命令执行完之后会立即执行分号后的命令。

考虑到命令之间的关联性 
比如想要在某个目录下面新建一个文件,当该目录存在时,才建立;如果不存在,就不建立。这时两个命令是有关联性的,前一个命令是否成功执行与后一个命令是否执行有关。需要借助 命令回传码的概念。若前一个命令执行的结果正确,在Linux下面会回传一个 $?=0的值。"$?"即“命令回传码”。

例:
ls /tmp/aaa && touch /tmp/aaa/bbb                              //当ls执行成功时,会建立bbb文件;当ls执行失败时,touch命令不执行。
ls /tmp/aaa || mkdir /tmp/aaa                                        //当ls执行成功时,不执行mkdir命令;当ls执行失败时,执行mkdir命令。
ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe   //当ls命令执行不成功时,创建abc文件夹,创建成功后,touch文件。
                                                                                    当ls命令执行成功时,mkdir不执行,$?继续往后传,touch文件。
                                                                                    综上,无论有没有/tmp/abc这个文件,都会建立/tmp/abc/hehe文件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值