一、基本结构化命令if-then语句格式:
bash shell的if语句会运行if后面的那个命令。如果该命令的退出状态码是0(该命令成功运行),位于then部分的命令就会被执行。如果该命令的退出状态码是其他值,then部分的命令就不会被执行。
fi语句用来表示if-then语句到此结束。
执行结果:
二、if-then-else语句

当if语句中的命令返回非零退出状态码时,会执行else部分中的命令。
else部分可以包含多条命令。

执行结果:

三、嵌套if
bash shell会依次执行if语句,只有第一个返回退出状态码0的语句中的then部分会被执行
四、test命令
if-then语句不能测试命令退出状态码之外的条件,test命令提供了在if-then语句中测试不同条件的途径。
如果test命令中列出的条件成立,test命令就会退出并返回状态码0。
test命令的格式非常简单:

condition是test命令要测试的一系列参数和值。当用在if-then语句中时,test命令看起来是这样的。

另一种写法:

第一个方括号和第二个方括号之前必须加上一个空格,否则会报错
test命令可以判断三类条件:
数值比较
字符串比较
文件比较


执行结果:

但是涉及到浮点值时,数值条件测试会有一个限制。bash shell只能处理整数。

记住,在比较字符串的相等性时,比较测试会将所有的标点和大小写情况都考虑在内。
-n和-z可以检查一个变量是否含有数据。
大于号和小于号必须转义,否则shell会把它们当作重定向符号,把字符串值当作文件名;
大于和小于顺序和sort命令所采用的不同。
执行结果:

sort test file
执行结果:(小到大排序)


五、复合条件测试
if-then语句允许使用布尔逻辑来组合测试。有两种布尔运算符可用:
1)[ condition1 ]&&[ condition1 ] 必须都满足
2)[ condition1 ] || [ condition1 ] 满足一种即可
执行结果:

六、if-then的高级特性
1)用于数学表达式的双括号 ((expression))
2)用于高级字符串处理功能的双方括号 [[ expression ]]
使用双括号
双括号的命令格式如下:

expression可以是任意的数学赋值或比较表达式。
2.特点:
(1)在双括号结构中,所有表达式可以像c语言一样,如:a++,b–等。
(2)在双括号结构中,所有变量可以不加入:“$”符号前缀。
(3)双括号可以进行逻辑运算,四则运算
(4)双括号结构 扩展了for,while,if条件测试运算
(5)支持多个表达式运算,各个表达式之间用“,”分开
(6)不需要将双括号中表达式里的判断符号转义

执行结果:

注意,引用变量可以加$符号也可以不加;
七、cae命令

case工作方式如上所示。取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。
取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令
案例:

执行结果:

shell脚本:使用if-then语句和test命令相关推荐

  1. 如何获取shell脚本中某条语句的执行时间

    有没有办法获取shell脚本中某条语句的执行时间 如果要获得语句执行所花的时间 用time命令 在语句的前面加上time命令 输出结果一共3列 比如我执行time sleep 5 real    0m ...

  2. Shell脚本break和continue语句应用

    记录:436 场景: Shell脚本break和continue语句应用.在for.while循环中使用break和continue语句. 版本:CentOS Linux release 7.9.20 ...

  3. linux用if语句编程序,Shell 脚本基础 - 使用 if 语句进行条件检测

    Bourne Shell 的 if 语句和大部分编程语言一样 - 检测条件是否真实,如果条件为真,shell 会执行这个 if 语句指定的代码块,如果条件为假,shell 就会跳过 if 代码块,继续 ...

  4. 怎么编写Linux脚本循环语句,shell脚本及常用循环语句

    博文结构 什么是shell 简单编辑shell 循环语句 一.什么是shell及作用 Shell字面理解就是个"壳",是操作系统(内核)与用户之间的桥梁,充当命令解释器的作用,将用 ...

  5. 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量...

    2019独角兽企业重金招聘Python工程师标准>>> 20.1 shell脚本介绍 shell 是一种脚本语言:和传统的开发语言比较,会比较简单 shell有自己的语法:可以使用逻 ...

  6. Shell脚本编程基础 三 使用结构化命令

    结构化命令允许我们改变程序执行的顺序,在某些条件下执行一些命令而在其他条件下跳过另一些命令. (1)使用if-then语句 结构化命令中,最基本的类型就是if-then语句,其格式如下: if com ...

  7. linux java转码_用Linux shell脚本批量转换java源文件编码(支持命令行选项)

    最近在用ant给java项目打jar包,但是程序运行出来之后,全部乱码,于是想到用Linux的iconv命令给java源文件转码,但是总不能一个一个地转吧,效率太低下了,于是便写了个Linux she ...

  8. shell脚本打开另一终端 并执行命令

    有时候,需要开两个终端,到同一目录下分别执行启动服务端和客户端的操作,感觉这种操作有点麻烦,就写个shell脚本来帮我弄: #!/bin/bash # 先切换当前终端的目录 cd /etc/redis ...

  9. shell脚本中判断上一条python命令执行情况

    shell脚本中判断python命令执行结果 python脚本main.py import sys def main():try:"执行相关操作"sys.exit(0)except ...

最新文章

  1. r语言 调用c windows,R:window()函数
  2. cinder块存储配置使用lvm
  3. Python模块之间的相互引用问题
  4. PHP下kafka的实践(已经测试)
  5. 两种方式实现js, ajax跨域
  6. 网页出现不河蟹弹窗?那是被劫持了!
  7. Android RecyclerView和ScrollView嵌套使用
  8. java多元解析方程组
  9. python pip安装+easy_install
  10. lambda expressions
  11. mongodb的常用增删改查命令:
  12. 理解insert all/insert first的使用
  13. 计算机网络知识点总结提纲(谢希仁)
  14. bitbake 编译错误集
  15. python 把数字日期转换成中文日期
  16. Disconnected:No supported authentication methods available
  17. SVN如何对已经提交的注释进行再次修改?
  18. 初级程序员最应避免的 7 大错误
  19. 计算机类sci杂志排名,计算机类SCI杂志排名
  20. Jquery手册中常用的方法

热门文章

  1. dell10代cpu装linux,戴尔10代cpu台式机装win7系统及bios设置|戴尔十代cpu台式机装win7...
  2. zxing二维码扫描预览变形的解决方案
  3. 基于机器学习具有实时高效任务分配的边缘计算系统
  4. Bootstrap的文本内容之Reboot
  5. 华春莹、赵立坚纷纷转发的数字人是谁?
  6. MES系统最全介绍来了,企业必看好文,值得收藏备用
  7. 大连理工大学开发区校区新生指南——1. 初始篇
  8. 川大计算机学院新生开学典礼,川大新生开学典礼 财大校长来串门儿(图)
  9. 关于虚拟机开机黑屏且关不了机问题解决
  10. 使用Jest测试js代码