shell 运算符

# 算数运算符 加减乘除  取余数 赋值 (运算中有括号要加转义符"\")expr为求值命令
a=1
b=2
expr $b + $a
3
expr $b - $a
1
expr $b \* $a
2
expr $a / $b
2
expr $b + $a
0
a=$b
echo $a
2

# 算数运算符 补充
sum+=1           # 算他自己加1又赋值给sum
sum-=1           # 算他自己减1又赋值给sum
sum*=1           # 算他自己乘1又赋值给sum
sum/=1           # 算他自己除1又赋值给sum
sum%=1           # 算他自己取模1又赋值给sum
sum=$[$sum+$i]  # 算正整数和的时候  i=1

比较运算符

# 相等
[ $a -eq $b ]
(($a=$B))
# 不相等
[ $a -ne $b ]
# 大于
[ $a -gt $b ]
(($a>$B))
# 小于
[ $a -lt $b ]
(($a<$B))
# 大于等于
[ $a -ge $b ]
(($a>=$B))
# 小于等于
[ $a -le $b ]
(($a<=$B))

字符串比较运算符

# 相等
[ $a == $b ]
# 不等
[ $a != $b ]
# 小于
[ $a \< $b ]
# 大于
[ $a \> $b ]
# 字符长度是否为空0
[ -z $a ]
#字符长度是否不为空0
[ -n $a ]
# 字符串是否不为空
[ $a ]
## 注意 字符串没有小于等于<=替代方式
[[ $a \< $b && $a == $b ]]
## 字符串 包含关系 判断(用通配符)
a="nvme0n1"
if [[ $a == nvme* ]]
then
  echo "bao"
else
  echo "NO"
fi

 

布尔值运算符

# 取反
-o # or或运算
-a # and 与运算

## 注意 布尔运算 智能放到 中括号里 [ ]

逻辑运算符

# and 与
&&
# or 或
||

文件测试运算符

# 文件的判断

-e filename     如果 filename 存在,则为真 
-s filename     如果 filename  大小为非0为真 
-d filename     如果 filename 为目录,则为真 
-f filename     如果 filename 为常规文件,则为真
-L filename     如果 filename 为符号链接,则为真
-c filename     如果 filename 为字符设备,则为真
-b filename     如果 filename 为块设备文件,则为真
-r filename     如果 filename 可读,则为真
-w filename     如果 filename 可写,则为真
-x filename     如果 filename 可执行,则为真
file1 -nt file2 如果 file1 比 file2 新,则为真
file1 -ot file2   如果 file1 比 file2 旧,则为真

 

posted on 2023-11-21 11:04  luokeli  阅读(19)  评论(0)    收藏  举报

导航