shell中的&&与||
来源:互联网 发布:ai芯片 知乎 编辑:程序博客网 时间:2024/05/09 09:52
在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命令中的 &&,||,&与|
- shell中的eval与$(())
- Shell中的 "" 与 '' 的用法
- Shell中的管道与xargs
- shell中的getopt与getopts
- Shell中的&&与||的区别
- shell中的括号与引号
- shell中的判断与循环
- shell中的输入与输出
- shell实现进度条 与 shell中的循环语句
- shell中的通配符与正则表达式
- shell中的反引号与$()区别
- Shell 参数中的双横杠与单横杠
- bash shell中的">file"与": >file"讨论
- 十六、shell中的输入与输出
- shell+中的+eval学习与应用
- 区别shell与makefile中的export
- 教你如何迅速秒杀掉:99%的海量数据处理面试题
- oracle sql调优法则
- 我是如何出版一本书的?(1)
- iphone FMDB数据库
- 集合排序,求出最大值,最小值,排序
- shell中的&&与||
- Mockito
- 全排列和组合-JAVA版本实现
- 在QtCreator上使用版本控制系统Git(一)
- Javascript函数:parseInt()
- STM32F单片机FLASH读写函数
- 高性能、高流量互联网应用架构设计实战原则
- 我是如何出版一本书的?(2)
- 观贴 有感 摘录