shell if-then条件语句
2017-12-29 16:02
239 查看
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
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
相关文章推荐
- Shell中的条件判断语句if~then~fi
- shell if 条件语句解析
- Shell条件测试语句及三种if语句
- 《shell脚本if..then..elif..then.if语句的总结》
- Shell脚本入门(六) - 条件控制语句: if
- Shell脚本基础5-if-then语句
- shell条件嵌套(if条件语句)
- shell条件嵌套(if条件语句)
- shell基础之二:条件判断语句if、case及read命令,
- shell 中 if then语句中会跟着-ne -ge之类的语句
- Shell 脚本基础 - 使用 if 语句进行条件检测
- shell条件嵌套(if条件语句)
- shell script 学习(四)条件判断式的使用:if..then ..fi和 case...esac语句
- Shell笔记4——if条件语句的知识和实践
- shell 知识点补充(4)-date/数值运算/test 指令/判断符号 [ ]/预设变数($0)/条件判断:if then
- Shell使用if条件语句
- shell脚本:使用if-then语句和test命令
- 一天一条shell知识------shell的结构之判断语句if-then
- VBS基础篇 - 条件语句(1) - If...Then...Else
- linux-shell---if条件语句中:-a到-z的参数定义