shell中&&与||
来源:互联网 发布:成都市行知实验小学 编辑:程序博客网 时间:2024/04/19 15:18
指令执行成功返回0
那个 || 刚好完全跟 && 相反,当前一个指令有错误时,在 || 后面的指令才会被执行!
例题:以 ls 测试 /tmp/vbirding 是否存在,若存在则显示 "exist" ,若不存在,则显示 "not exist"!
答: 这又牵涉到逻辑判断的问题,如果存在就显示某个数据,若不存在就显示其它数据,
那我可以这样做:
ls /tmp/vbirding && echo "exist" || echo "not exist"
意思是说,当 ls /tmp/vbirding 执行后,若正确,就执行 echo "exist" ,若有问 题,就执行 echo "not exist" !那如果我写成:
ls /tmp/vbirding || echo "not exist" && echo "exist"
对不对啊?这其实是有问题的,为什么呢?因为指令是一个一个往下执行,因此,在
上面的例子当中,如果 /tmp/vbirding 不存在时,他会:
1. 若 ls /tmp/vbirding 不存在,因此回传一个非为 0 的数值;
2. 接下来经过 || 的判断,发现前一个指令回传非为 0 的数值,因此,程序开始执行 echo "not exist" ,而 echo "not exist" 程序肯定可以执行成功,
因此会回传一个 0 值给后面的指令;
3. 经过 && 的判断,咦!是 0 啊!所以就开始执行 echo "exist" 。
所以啊,嘿嘿!第二个例子里面竟然会同时出现 not exist 与 exist 呢!真神奇~
经过这个范例的练习,您应该会了解,由于指令是一个接着一个去执行的,因此,如果真要使用判断, 那么这个 && 与 || 的顺序就不能搞错~一般来说,判断式最多会有三个,也就是:
command1 && command2 || command3
而且顺序通常不会变,因为一般来说, command2 与 command3 会放置肯定可以执行成功的指令, 因此,依据上面例题的逻辑分析,您就会晓得为何要如此放置啰~这很有用的啦!
- shell中&&与||
- shell中$*与$@的区别
- SHELL中&&与||的区别
- shell中$*与$@的区别
- shell中$*与$@的区别
- shell中$*与$@的区别
- shell中$@与$*的区别
- shell脚本中$@与$#区别
- shell中$(( ))、$( )与${ }的区别
- shell中$(( ))、$( )与${ }的区别
- shell中$(( ))、$( )与${ }的区别
- shell中$(( ))、$( )与${ }的区别
- shell中$(( ))、$( )与${ }的区别
- shell中$(( ))、$( )与${ }的区别
- shell中$(( ))、$( )与${ }的区别
- shell中source与export
- shell中$*与$@的区别
- sqlplus 与 shell 结合--shell中执行sql 脚本
- TQ210搭载Android4.0.3系统构建之LED从驱动到HAL到JNI到应用程序(驱动篇)
- C/C++与Lua互相调用
- Java运行过程出现的内存不足问题
- JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用
- ios开源项目(二)
- shell中&&与||
- OCJP之Integer autoboxing
- Fork 与vfork到底什么区别
- andrioid初学者学习andrioid的文章
- Linux ftruncate函数
- mysql分表的3种方法
- 【100题】第六十六~第七十题(颠倒栈、扑克牌顺子和掷骰子概率、数字数组排成最小数、求旋转数组中最小值、全排列)
- 图片搜索
- 浅谈MySql的存储引擎(表类型)