您当前的位置: 首页 >  梁云亮

Shell中的运算符

梁云亮 发布时间:2020-02-25 13:01:24 ,浏览量:4

Shell中支持以下运算符:

算术运算符

参考博客:Shell 计算工具

运算符说明举例
+加法$a + $b
-减法$a - $b
*乘法$a * $b
/除法$a / $b
%取余$a % $b
=赋值a=$b 将把变量 b 的值赋给 a
==相等用于比较两个数字,相同则返回 true,否则返回false
!=不相等用于比较两个数字,不相同则返回 true,否则返回false

示例:

示例:

关系运算符

注意:关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

运算符说明举例
-eq检测两个数是否相等,相等返回 true[ $a -eq $b ]
-ne检测两个数是否相等,不相等返回 true[ $a -ne $b ]
-gt检测左边的数是否大于右边的,如果是,则返回 true[ $a -gt $b ]
-lt检测左边的数是否小于右边的,如果是,则返回 true[ $a -lt $b ]
-ge检测左边的数是否大等于右边的,如果是,则返回 true[ $a -ge $b ]
-le检测左边的数是否小于等于右边的,如果是,则返回 true[ $a -le $b ]

示例:

布尔运算符

运算符说明举例
!非运算,表达式为 true 则返回 false,否则返回 true[ ! false ]
-o或运算,有一个表达式为 true 则返回 true[ $a -lt 10 -o $b -gt 10 ]
-a与运算,两个表达式都为 true 才返回 true[ $a -lt 10 -a $b -gt 10 ]

示例:

字符串运算符

运算符说明举例
=检测两个字符串是否相等,相等返回 true[ $a = $b ]
!=检测两个字符串是否不相等,不相等返回 true[ $a != $b ]
-z检测字符串长度是否为0,为0返回 true[ -z $a ]
-n检测字符串长度是否不为0,不为0返回 true[ -z $a ]
str检测字符串是否为空,不为空返回 true[ $a ]

示例:

文件运算符

运算符说明举例
-b file检测文件是否是块设备文件,如果是则返回 true。[ -b $file ]
-c file检测文件是否是字符设备文件,如果是则返回 true。[ -c $file ]
-d file检测文件是否是目录,如果是则返回 true。[ -d $file ]
-f file检测文件是否是普通文件(既不是目录,也不是设备文件),如果是则返回 true。[ -f $file ]
-g file检测文件是否设置了 SGID 位,如果是则返回 true。[ -g $file ]
-k file检测文件是否设置了粘着位(Sticky Bit),如果是则返回 true。[ -k $file ]
-p file检测文件是否是具名管道,如果是则返回 true。[ -p $file ]
-u file检测文件是否设置了 SUID 位,如果是则返回 true。[ -u $file ]
-r file检测文件是否可读,如果是则返回 true。[ -r $file ]
-w file检测文件是否可写,如果是则返回 true。[ -w $file ]
-x file检测文件是否可执行,如果是则返回 true。[ -x $file ]
-s file检测文件是否为空(文件大小是否大于0),不为空返回 true。[ -s $file ]
-e file检测文件(包括目录)是否存在,如果存在则返回 true。[ -e $file ]

示例:


关注
打赏
查看更多评论

梁云亮

暂无认证

  • 4浏览

    0关注

    1121博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录