linux脚本if then,shell里if-then的使用

命令格式

if command

then

commands

fi

或者

if command ; then

commands

fi

注意command后面有个分号(;)

shell里面会运行if后面的command命令。如果运行之后,该命令退出状态为0,则只需then后面的commands命令。这点和其他编程语言不一样。其他编程语言是,如果if后面的条件为TRUE或者false来判断。

if-then 不能测试命令退出状态码以外的条件。但在bash中有个好工具可以通过test命令来测试其他条件

test command如果后面的condition满足的话,test命令退出并返回状态码0。如果条件不成立,则退出并返回非0的状态码。

除此之外,可以直接用方括号( [ ] )来替代test命令

if [ condition ]需要注意的是 ,

方括号与condtion前后都必须留有空格,否则会报错

条件比较类型分为三类;

1)数值比较。

-eq,-ge,-gt,-le,-lt,-ne

2)字符串比较

str1 = str2 检查str1是否和str2相同

str1 != str2 检查str1是否和str2不等

str1 < str2 检查str2是否比str1小

str1 > str2 检查str1是否比str2大

-n str1 检查str1的长度是否非0

-z str1 检查str1的长度是否为0

注意:字符串大于和小于比较需要转义,if [ $val1 > $val2 ]是错误的,必须用 [ $val1 \> $val2]

3)文件比较

-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高级特性:

1)用于数学表达式的双括号(())

((expression))双括号命令允许在比较过程中使用高级数学表达式。test比较命令只能使用简单的算数操作,而双括号可以使用更多的数学符号。

如:++,--,!(取反),~(位取反),**(幂运算),<>,&,|,&&,||

2)用于高级字符串处理功能的双方括号[[]]

[[expression]]双方括号提供了针对字符串比较的高级特性。有一个模式匹配功能。

例如:

if [[ $USER == r*]]

then

echo "Hello $USER"

else

echo "Sorry,I don't know you"

fi这个例子里,判断当前用户是否是以r开头。

总结

以上是编程之家为你收集整理的shell里if-then的使用全部内容,希望文章能够帮你解决shell里if-then的使用所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值