shell if-then条件语句

shell 结构化命令
if-then
if  command
then
command
fi
首先会运行if后边的命令,如果命令的退出码是0
则执行then部分的命令,如果退出码是其他值,shell
则会跳过并执行下一个shell命令。
if后边可以跟多个命令


if-then-else
if command
then
command
else
command
fi
当if后边的命令返回退出状态码0时,执行then后的命令
退出状态码不是0时,执行else语句。


嵌套if
if command
then
commands
elif command2
then 
more commands
fi
跟if-then的执行过程是一样的


test命令
if test condition 
then
commands
其中condition是test命令要测试的一系列参数和值。
在bash中test condition也可以用【condition】来表示
test命令可以判断3类条件:
数值比较
字符串比较 
文件比较
数值比较:
n1 -eq  n2       检查n1是否与n2相等
n1 -ge n2 检查n1是否大于或等于n2
n1 -gt n2 检查n1是否大于n2
n1 -le n2 检查n1是否小于或等于n2
n1 -lt n2 检查n1是否小于n2
n1 -ne n2 检查n1是否不等于n2
test命令无法处理浮点数。


字符串比较功能
str1  =  str2     检查str1是否和str2相同
str1  !=  str2 检查str1是否和str2不同
str1  <  str2 检查str1是否比str2小
str1  >  str2 检查str1是否比str2大
-n  str1  检查str1的长度是否非0
-z  str1  检查str的长度是否为0


文件比较
-d  file 检查file是否存在并是一个目录
-e file 检查file是否存在
-f  file 检查file是否存在并是一个文件
-r  file 检查file是否存在并可读
-s  file 检查file是否存在并非空
-w  file 检查file是否存在并可写
-x  file 检查file是否存在并可执行
-o file 检查file是否存在并属当前用户所有
-G file 检查file是否存在并且默认组与当前用户相同
file1 -nt  file2 检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧


if-then布尔运算
[ command ]&&[ command ] 同时满足条件才会执行
[ command ]||[ command ] 满足一个条件就可以执行


if-then的高级特性
用于数学表达式的双尖括号
用于高级字符串处理功能的双方括号


双尖括号中的运算符号不需要转义,比如>
格式如下:(( expression ))


双方括号支持模式匹配,所以可以定义正则表达式。
格式[[ expression ]]


case的用法:
case variable in
pattern1 | pattern2)command1::
pattern3)command2::
*) default commands::
esac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值