shell && 和 || 的短路使用

&&|| 在 shell 中分别表示 and 和  or,和其它语言类似,这两个操作有短路效应。也就是说,当判断式已经确定时,不再继续处理后续表达式。 && 在失败时中断, || 在成功时中断。 简单的短路经常可以在一些网上的脚本里面看到。

如:

a=1
[ a -eq 2 ] && echo "a=2"

因为在第一个条件测试时,已确定为假(失败),echo 并不会执行。

a=1
[ a -eq 1 ] || echo "a=1"

因为在第一个条件测试时,已确定为真(成功),echo 并不会执行。

这种短路方式会给 shell 编程带来一定的便利,减少很多的 if-else 语句。但在判断条件复杂时,不建议使用过于复杂的短路组合,以免大大降低了代码的可读性。

常见的用法:

  1. 命令成功或失败后的后续处理

     ifdown -a --exclude=lo && ifup -a --exclude=lo
    which lsb_release || exit 0
  2. 简单条件判断

     [ -n "${MY_IP}" ] && ifconfig eth0 "${MY_IP}" 255.255.255.0

最新文章

  1. 解决scrollview上的menu拖动问题以及menu item在可视区外仍能触发的问题
  2. 大冰--寻人启事--one
  3. Azure MySQL PaaS (2) MySQL PaaS修改时区
  4. Hyperledger fabric Client Node.js Hello World示例程序
  5. HDU 3639 Bone Collector II(01背包第K优解)
  6. LinuxShell脚本攻略--第八章 当个好管家
  7. StatusBar & StatusBarItem
  8. Android UI开发第三十篇——使用Fragment构建灵活的桌面
  9. 对React的理解
  10. GDI相关基础知识
  11. (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹
  12. Java OPC 代码
  13. 12、多线程:Threading、守护线程
  14. 51nod 1061 最复杂的数V2
  15. 回顾<Video Timing Controller v6.1>
  16. VM虚拟机克隆_修改网络
  17. python学习之老男孩python全栈第九期_day007作业
  18. python中使用Opencv进行人脸识别
  19. hdu2138 Miller_Rabin
  20. Arcgis10.1 Arcobject连接Oracel数据库

热门文章

  1. Scala _ [underscore] magic
  2. 5. Configure the Image Service
  3. x86_64编译JPEG遇到Invalid configuration `x86_64-unknown-linux-gnu'
  4. UAPStudio授权过期的解决方法,重新授权
  5. Web 在线文件管理器学习笔记与总结(6)jQuery UI 预览图片
  6. PHP生成随机密码的4种方法及性能对比
  7. Visual Studio开发环境最佳字体及配色
  8. php-->mongodb[curd操作]
  9. 【转】CodeIgniter定义自己的Helper和Helper的方法
  10. java override