设为首页 加入收藏

TOP

shell中的&&与||
2014-11-24 07:14:59 来源: 作者: 【 】 浏览:0
Tags:shell

在linux中前一个命令执行的结果正确,则Linux下面会回传一个$ =0的值。那么我们怎么透过这个回传值来判断后续的指令是否要执行呢?这就得要由&&及||的帮忙了!



范例一:使用 ls 查阅目录 /tmp/abc 是否存在,若存在则用 touch 建立
/tmp/abc/hehe
[root@www ~]# ls /tmp/abc && touch /tmp/abc/hehe
ls: /tmp/abc: No such file or directory
# ls说明找不到该目录,但幵没有 touch 癿错误,表示 touch 并没有执行

[root@www ~]# mkdir /tmp/abc
[root@www ~]# ls /tmp/abc && touch /tmp/abc/hehe
[root@www ~]# ll /tmp/abc
-rw-r--r-- 1 root root 0 Feb 7 12:43 hehe


看到了吧?如果 /tmp/abc 不存在时,touch 就不会被执行,若 /tmp/abc 存在的话,那么 touch 就会开始执行啰!


范例二:测试 /tmp/abc 是否存在,若不存在则建立,若存在不干事
[root@www ~]# rm -r /tmp/abc <==先初除此目录
[root@www ~]# ls /tmp/abc || mkdir /tmp/abc
ls: /tmp/abc: No such file or directory <==真的不存在喔!
[root@www ~]# ll /tmp/abc
total 0 <==结果出现了!有进行 mkdir


如果我想要建立 /tmp/abc/hehe 这个档案,但我并不知道 /tmp/abc 是否存在,那该如何是好


范例三:我不清楚 /tmp/abc 是否存在,但就是要建立 /tmp/abc/hehe 档案
[root@www ~]# ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe


范例三有几种结果我们来分析一下:


(1) 若 /tmp/abc 不存在故回传 $ ≠0,则 (2)因为 || 遇到非为 0 的 $ 故开始 mkdir /tmp/abc,由于 mkdir /tmp/abc 会成功执行,所以回传 $ =0 (3)因为 && 遇到 $ =0 故会执行 touch


(2) 若 /tmp/abc 存在故回传 $ =0,则 (2)因为 || 遇到 0 癿 $ 不会执行,此时 $ =0 继续向后传,故 (3)因为 && 遇到$ =0 就开始建立 /tmp/abc/hehe 了!最终 /tmp/abc/hehe 被建立起来。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇shell中的通配符以及特殊符 下一篇Shell中条件测试

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·工业机器人TCP校准中 (2025-12-25 05:19:17)
·opc 通讯协议与 TCP (2025-12-25 05:19:15)
·labview中tcp/ip通信 (2025-12-25 05:19:13)
·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)