shell中用if/then/elif/else/fi实现分支控制,本质上是由若干条shell命令组成。

例如

if [ -f  ~/.bashrc ]; then. ~/.bashrc
fi

如果两条命令需要在同一行写,那么用;隔开,一行只写一个命令则不需要用;隔开。

命令与各参数之间需要用空格隔开。

if 后面的子命令,如果该命令的exit status为0则表示为真,则执行then后面的子句。

如果为假那么则执行elif,else或者fi后面的子命令。

这个子命令通常为测试命令。shell脚本中没有{},所以用fi来表示if语句块的结束。

#! /bin/shif [ -f /bin/basn ]
then echo "/bin/bash is a file"
else echo "/bin/bash is NOT a file"
fi
if :;then echo "always true";fi

:是一个空命令,这个命令不做任何事情,结果永为真。此外,也可以执行/bin/true或/bin/false得到真或假的exit status

#!/bin/shecho "Is It morning? Please answer yes or no"
read YES_OR_NO
if [ "$YES_OR_NO"="yes" ];then
echo "Good morning!"
elif [ "YES_OR_NO"="no" ];then
echo "Good afternoon!"
else

这个例子中,read命令的作用是等待用户输入一个字符串,将该字符串储存在shell变量之中。

shell提供了&&与||语法,与C语类似,具有Short-circuit特性

&&的作用相当于if then

||              相当于if not.....then

例如

[root@localhost ~]# test "$(whoami)"!="root" && (echo you are using a non-privileged account; exit 1)
you are using a non-privileged account[root@localhost ~]# test "$(whoami)"!="root" || (echo you are using a non-privileged account; exit 1)
[root@localhost ~]# #一个执行了后面的语句另一个并没有

shell if/then/elif/else/fi相关推荐

  1. ubuntu中的fi语法_Shell脚本语法--if/then/elif/else/fi

    Shell脚本语法--if/then/elif/else/fi 和C语言类似,在Shell中用if.then.elif.else.fi这几条命令实现分支控制.这种流程控制语句本质上也是由若干条Shel ...

  2. Linux学习 分支(if-then fi, if then elif then fi, case in );;easc

    1.if-then语句 if command then commands fi 如果command执行成功,exit 0的话 then条件成立,then 内的命令执行. 2.if-then-else ...

  3. if...elif...else...fi和case...esac的脚本条件判断式

    注意1: if 表达式和case 表达式的区别及什么时候使用哪个要有明确的区分? 『 if .... then .... fi 』对于变量的判断是以『比对』的方式来分辨的, 如果符合状态就进行某些行为 ...

  4. [Bash Shell] Shell学习笔记

    1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...

  5. shell脚本常用的4种流程控制语句

    if条件测试语句 if条件测试语句可以让脚本根据实际情况自动执行相应的命令.从技术角度来讲,if语句分为单分支结构.双分支结构.多分支结构:其复杂度随着灵活度一起逐级上升. 1.if条件语句的单分支结 ...

  6. Linux Shell 编程学习总结

    Shell 教程 Shell简介:什么是Shell,Shell命令的两种执行方式 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成 ...

  7. linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载

    http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html nux shell有一套自己的流程控制语句,其中包括条件语句(if),循环 ...

  8. 复习(一)—— Shell基本编程

    Linux体系中的shell编程在实现系统管理与维护.系统使用.用户环境定制等方面作用突出. 使用shell写的程序通常也称为脚本. 在用户主目录中,在/etc目录中,随处可见脚本文件. 脚本是由各种 ...

  9. Shell教程(四):条件语句、循环语句、break/continue

    在编写shell脚本,有可能是一种情况,当你需要采取一个路径两条路径.所以,需要利用条件语句,让程序作出正确的决策和执行正确的动作. UNIX Shell支持条件语句,从而根据不同的条件下执行不同的操 ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task21. 二叉树的最大深度
  2. JavaScript 模拟事件触发
  3. codeforces1454 F. Array Partition
  4. DRF数据验证+数据存储
  5. JVM优化系列-常用GC参数总结
  6. [JS] - onmusewheel事件(兼容IE,FF)
  7. 三类MySQL_Mysql中的三类锁,你知道吗?
  8. java对象序列化为字符串
  9. html按钮突出效果,这10个按钮,把 CSS HOVER 的创意发挥到极致了
  10. 后台返回整个html转换成页面链接,利用html5的history.replaceState修改当前页面的URL...
  11. Trie图的学习过程
  12. python 简单的接口测试框架
  13. 网络流二十四题之魔术球问题
  14. mysql版 雪花算法_雪花算法如何生成id
  15. 论文阅读《Camera pose voting for largescale image-based localization》
  16. 弗吉尼亚大学计算机就业如何,假设你是新华中学的学生李华,高中毕业后想到美国弗吉尼亚大学(University of Virginia)计算机专业深造...
  17. InnoDB Buffer Pool 缓冲池详解
  18. scala面向对象总结
  19. 谷歌前产品经理Michael Levin加入Lightning Labs担任产品增长主管
  20. iOS开发创建App内购买项目发现元数据丢失

热门文章

  1. 小程序获取视频第一帧
  2. C语言函数指针和返回指针值的函数
  3. linux svn 查看忽略文件,SVN忽略文件或文件夹几种方法总结linux操作系统 -电脑资料...
  4. halcon中怎么降低图像亮度_图像亮度调整
  5. C语言char类型的存储
  6. 无法下载图片 App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insec
  7. matlab里surf函数,matlab surf 函数画3维图
  8. 计算机应用基础0006 19春在线作业1,《计算机应用基础0006》19春在线作业1 为了实现自动控制处理 需要计算机具有的基础条件是...
  9. 根据前序遍历和中序遍历创建二叉树
  10. 字符串复制的两种方法