条件测试命令,if命令,双圆括号,双中括号

本文详细介绍了Bash中的条件测试命令,包括文件测试、整数值比较、字符串比较和逻辑测试。讲解了test、[ ]、(( ))、[[ ]]的用法,并通过实例演示了如何使用这些命令进行比较和逻辑判断。此外,还讨论了if语句的使用,以及结合条件测试完成的实际任务。
摘要由CSDN通过智能技术生成

本篇主要是对条件测试、if命令、(( ))、[[ ]]进行说明,如有不当之处,敬请留言指正。



一、条件测试命令:

格式1:test 条件表达式
格式2:[ 条件表达式 ]

测试的条件类型:

  • 测试文件状态
  • 整数值比较
  • 字符串比较
  • 逻辑测试
1.文件测试

格式:[ 操作符 文件或目录 ]
常用的测试操作符:

  • -d:测试是否为目录(directory)
  • -e:测试目录或文件是否存在(exist)
  • -f:测试是否为文件(file)
  • -s:测试文件存在且内容非空(仅有1个空格也是非空)
  • -r:测试当前用户是否有权限读取(read)
  • -w:测试当前用户是否有权限写入(write)
  • -x:测试当前用户是否有权限执行(execute)

后面接#echo $? –》返回值为0,则上一条执行正确,为1,则执行错误。

经典用法:

[ -d /backup ]&&echo "/backup directory is exist"||mkdir /backup

这段代码的含义是:判断根下的backup目录是否存在,如果存在就输出”/backup directory is
exist”,如果不存在就创建/backup目录。

执行结果:
这里写图片描述

2.整数值比较

(1)传统格式:[ 整数1 操作符 整数2 ]
常用的测试操作符:

  • -eq:等于(equal)
  • -ne:不等于(not equal)
  • -gt:大于(greater than)
  • -lt:小于(lesser than)
  • -le:小于或等于(lesser or equal)
  • -ge:大于或等于(greater or equal)

(2)双圆括号比较: 格式:(( 整数1 操作符 整数2 ))

推荐使用双圆括号法比较整数值

# a=10
# ((a>20)) && echo ok || echo no  
no

#((a>b)) 
#[ $b -gt $a ];echo $? --》不能使用> < >= ==

练习1:

# who | wc -l
7
# [ $(who | wc -l) -gt 5 ] && echo "Too many."    
--》用户数是否>5
Too many.
# [ $(who | wc -l) -ge 10 ] && echo "> = 10."    
--》用户数是否>=10

练习2:
监控内存的使用情况,一旦内存的可用空间低于800M就在屏幕上输出“your system is less than 800M,you need to do something to improve memory size”(用free -m 命令即可)。
答案:

# a=$(free -m|grep "Mem"|tr -s ' '|awk '{print $4}')
# [ $a -lt 800 ]&&echo "your system is less than 800M"
3.字符串比较

(1)
格式1:
[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
格式2:
[ -z 字符串 ]

  • -z:字符串内容为空
  • -n:字符串内容非空

判断字符串时,建议都加“”

例子:
这里写图片描述
这里写图片描述

(2)双方括号进行字符串比较–》推荐
格式:[[ 字符串1=字符串2 ]]
(方括号时,要用-gt等等符号 )

[[ ]] 可以解决变量中带空格的问题!!

# [ $a = "abc 123" ] && echo ok || echo no  
-bash: [: too many arguments
no
# [[ $a =
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斯言甚善

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值