shell脚本:使用if-then语句和test命令
一、基本结构化命令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命令相关推荐
- 如何获取shell脚本中某条语句的执行时间
有没有办法获取shell脚本中某条语句的执行时间 如果要获得语句执行所花的时间 用time命令 在语句的前面加上time命令 输出结果一共3列 比如我执行time sleep 5 real 0m ...
- Shell脚本break和continue语句应用
记录:436 场景: Shell脚本break和continue语句应用.在for.while循环中使用break和continue语句. 版本:CentOS Linux release 7.9.20 ...
- linux用if语句编程序,Shell 脚本基础 - 使用 if 语句进行条件检测
Bourne Shell 的 if 语句和大部分编程语言一样 - 检测条件是否真实,如果条件为真,shell 会执行这个 if 语句指定的代码块,如果条件为假,shell 就会跳过 if 代码块,继续 ...
- 怎么编写Linux脚本循环语句,shell脚本及常用循环语句
博文结构 什么是shell 简单编辑shell 循环语句 一.什么是shell及作用 Shell字面理解就是个"壳",是操作系统(内核)与用户之间的桥梁,充当命令解释器的作用,将用 ...
- 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量...
2019独角兽企业重金招聘Python工程师标准>>> 20.1 shell脚本介绍 shell 是一种脚本语言:和传统的开发语言比较,会比较简单 shell有自己的语法:可以使用逻 ...
- Shell脚本编程基础 三 使用结构化命令
结构化命令允许我们改变程序执行的顺序,在某些条件下执行一些命令而在其他条件下跳过另一些命令. (1)使用if-then语句 结构化命令中,最基本的类型就是if-then语句,其格式如下: if com ...
- linux java转码_用Linux shell脚本批量转换java源文件编码(支持命令行选项)
最近在用ant给java项目打jar包,但是程序运行出来之后,全部乱码,于是想到用Linux的iconv命令给java源文件转码,但是总不能一个一个地转吧,效率太低下了,于是便写了个Linux she ...
- shell脚本打开另一终端 并执行命令
有时候,需要开两个终端,到同一目录下分别执行启动服务端和客户端的操作,感觉这种操作有点麻烦,就写个shell脚本来帮我弄: #!/bin/bash # 先切换当前终端的目录 cd /etc/redis ...
- shell脚本中判断上一条python命令执行情况
shell脚本中判断python命令执行结果 python脚本main.py import sys def main():try:"执行相关操作"sys.exit(0)except ...
最新文章
- r语言 调用c windows,R:window()函数
- cinder块存储配置使用lvm
- Python模块之间的相互引用问题
- PHP下kafka的实践(已经测试)
- 两种方式实现js, ajax跨域
- 网页出现不河蟹弹窗?那是被劫持了!
- Android RecyclerView和ScrollView嵌套使用
- java多元解析方程组
- python pip安装+easy_install
- lambda expressions
- mongodb的常用增删改查命令:
- 理解insert all/insert first的使用
- 计算机网络知识点总结提纲(谢希仁)
- bitbake 编译错误集
- python 把数字日期转换成中文日期
- Disconnected:No supported authentication methods available
- SVN如何对已经提交的注释进行再次修改?
- 初级程序员最应避免的 7 大错误
- 计算机类sci杂志排名,计算机类SCI杂志排名
- Jquery手册中常用的方法
热门文章
- dell10代cpu装linux,戴尔10代cpu台式机装win7系统及bios设置|戴尔十代cpu台式机装win7...
- zxing二维码扫描预览变形的解决方案
- 基于机器学习具有实时高效任务分配的边缘计算系统
- Bootstrap的文本内容之Reboot
- 华春莹、赵立坚纷纷转发的数字人是谁?
- MES系统最全介绍来了,企业必看好文,值得收藏备用
- 大连理工大学开发区校区新生指南——1. 初始篇
- 川大计算机学院新生开学典礼,川大新生开学典礼 财大校长来串门儿(图)
- 关于虚拟机开机黑屏且关不了机问题解决
- 使用Jest测试js代码