shell脚本if

  • 脚本参数
调用解释
$#是传给脚本的参数个数
$0是脚本本身的名字
$1是传递给该shell脚本的第一个参数
$2是传递给该shell脚本的第二个参数
$@是传给脚本的所有参数的列表
$*是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$是脚本运行的当前进程ID号
$?是显示最后命令的退出状态,0表示没有错误,其他表示有错误
  • 文件判断
调用解释
-r用户可读为真
-w用户可写为真
-x用户可执行为真
-f文件为正规文件为真
-d文件为目录为真
-c文件为字符特殊文件为真
-b文件为块特殊文件为真
-s文件大小非0时为真
-t当文件描述符(默认为1)指定的设备为终端时为真
  • 逻辑判断
调用解释
-a与(and)
-o或(or)
!
#例如
if [ "$a" -eq 1 -o "$b" -eq 2 ]  &&  [ "$c" -eq 3 ]; then
IF高级特性:

双圆括号(( )):表示数学表达式
在判断命令中只允许在比较中进行简单的算术操作,而双圆括号提供更多的数学符号,而且在双圆括号里面的’>’,’<'号不需要转意。

双方括号[[ ]]:表示高级字符串处理函数

双方括号中判断命令使用标准的字符串比较,还可以使用匹配模式,从而定义与字符串相匹配的正则表达式。

双括号的作用:

在shell中,[ $a != 1 || $b = 2 ]是不允许出,要用[ $a != 1 ] || [ $b = 2 ],而双括号就可以解决这个问题的,[[ $a != 1 || b = 2 ] ] 。 又 比 如 这 个 [ " b = 2 ]]。又比如这个[ " b=2]]["a" -lt “ b " ] , 也 可 以 改 成 双 括 号 的 形 式 ( ( " b" ],也可以改成双括号的形式((" b"](("a”< “$b”))

  • if条件判断语法
调用解释事例|
-eq等于如:if [ “ a " − e q " a" -eq " a"eq"b” ]
-ne不等于如:if [ “ a " − n e " a" -ne " a"ne"b” ]
-gt大于如:if [ “ a " − g t " a" -gt " a"gt"b” ]
-ge大于等于如:if [ “ a " − g e " a" -ge " a"ge"b” ]
-lt小于如:if [ “ a " − l t " a" -lt " a"lt"b” ]
-le小于等于如:if [ “ a " − l e " a" -le " a"le"b” ]
>大于(需要双括号)如:if((“ a " > " a" > " a">"b”))
>=大于等于,需要双括号如:if((“ a " > = " a" >= " a">="b”))
<=小于等于,需要双括号如:if((“ a " > = " a" >= " a">="b”))
  • 字符串比较
调用解释
=等于,如:if [ “ a " = " a" = " a"="b” ]
==等于,如:if [ “ a " = = " a" == " a"=="b” ],与=等价
[ -z STRING ]如果STRING的长度为零则返回为真,即空是真
[ -n STRING ]如果STRING的长度非零则返回为真,即非空是真
[ STRING1 ]如果字符串不为空则返回为真,与-n类似
[ STRING1 == STRING2 ]如果两个字符串相同则返回为真
[ STRING1 != STRING2 ]如果字符串不相同则返回为真
[ STRING1 < STRING2 ]如果 “STRING1”字典排序在“STRING2”前面则返回为真。
[ STRING1 > STRING2 ]如果 “STRING1”字典排序在“STRING2”后面则返回为真。
  • 事例1
#!/bin/bash
a=10
b=20
if [ $a -lt $b ] && [ $a -eq 11 ]
then
    echo "小于20"
fi
# 结果:小于20
  • 事例2
#!/bin/bash
a=0
b=0
c=5
if [ $a = 0 -a $b = 0 ] && [ $c != 0 ]; then
    echo "success"
fi
# 结果:success
  • 事例3
#!/bin/bash
a=0
b=0
c=5
if [ $a -eq 0 -a $b -eq 0 ] && (($c >= 5)); then
    echo "success"
fi
# 结果:success
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值