FALTRUESE]
Shell 基本运算符
Shell中间的数学运算,常用的命令是awk、expr,具体用法如下:
awk 'BEGIN {a=2;b=3;print "(a+b)=",a+b}' # 输出 (a+b)=5
var=` expr 2+3` # `是反引号,不是单引号
echo $var # 输出 5
算数运算符
| 运算符 | 说明 |
|---|---|
| + | 加法,expr $a + $b |
| - | 减法,expr $a - $b |
| * | 乘法,expr $a * $b |
| / | 除法,expr $a / $b |
| % | 求余,expr $a % $b |
| == | 相等,[ $a == $b] |
| != | 不等,[$a != $b] |
关系运算符
| 运算符 | 说明 |
|---|---|
| -eq | 检测两个数是否相等,相等返回TRUE, [$a -eq $b] |
| -ne | 检测两个数是否不等,不等返回TRUE, [$a -nq $b] |
| -gt | 检测左边的数是否大于右边的,大于返回TRUE, [$a -eq $b] |
| -lt | 检测左边的数是否小于右边的,小于返回TRUE, [$a -eq $b] |
| -ge | 检测左边的数是否大于等于右边的,大于等于返回TRUE, [$a -ge $b] |
| -le | 检测左边的数是否小于等于右边的,小于等于返回TRUE,[$a -le $b] |
注意:关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
布尔运算符
a=1,b=1
| 运算符 | 说明 |
|---|---|
| ! | 非运算,表达式为TRUE,则返回FALSE,否则返回TRUE, [!FALSE],返回TRUE |
| -o | 或运算,有一个表达式为TRUE,则TRUE, [$a -gt 1 -o $b -lt 2] |
| -a | 与运算,有两个表达式为TRUE,则返回TRUE, [$a -gt 1 -o $b -lt 8] |
逻辑运算符
a=10,b=80
| 运算符 | 说明 |
|---|---|
| && | 逻辑的AND,[[ $a -lt 100 && $b -gt 100 ]],返回FALSE |
| || | 逻辑的OR,[[ $a -lt 8 && $b -gt 10 ]],返回TRUE |
字符串运算符
| 运算符 | 说明 |
|---|---|
| = | 检测两个字符串是否相等,相等返回TRUE,[ $str1 = $str2 ] |
| != | 检测两个字符串是否不等,不等返回TRUE,[ $str1 != $str2 ] |
| -z | 检测字符串长度是否为0,为0返回TRUE,[ -z $str1 ] |
| -n | 检测字符串长度是否为0,不为0返回TRUE,[ -n $str2 ] |
| str | 检测字符串是否为空,不为空返回TRUE,[ $str1 ] |
文件测试运算符
| 运算符 | 说明 |
|---|---|
| -b | 检测文件是否是块设备文件,如果是返回TRUE,[ -b $file ] |
| -c | 检测文件是否是字符设备文件,如果是返回TRUE,[ -c $file ] |
| -d | 检测文件是否是目录,如果是返回TRUE,[ -d $file ] |
| -f | 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是返回TRUE,[ -f $file ] |
| -g | 检测文件是否设置了SGID位,如果是返回TRUE,[-g $file ] |
| -k | 检测文件是否设置了粘着位(Sticky Bit),如果是返回TRUE,[ -k $file ] |
| -p | 检测文件是否具名管道,如果是返回TRUE,[ -p $file ] |
| -u | 检测文件是否设置了SUID位,如果是返回TRUE,[ -u $file ] |
| -r | 检测文件是否可读,如果是返回TRUE,[ -r $file ] |
| -w | 检测文件是否可写,如果是返回TRUE,[ -w $file ] |
| -x | 检测文件是否可执行,如果是返回TRUE,[ -x $file] |
| -s | 检测文件是否为空,如果是返回TRUE,[ -s $file ] |
| -e | 检测文件(包括目录)是否存在,如果是返回TRUE,[ -e $file ] |
最后
以上就是结实招牌最近收集整理的关于Shell自我学习——运算符Shell 基本运算符的全部内容,更多相关Shell自我学习——运算符Shell内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复