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 旧,则为真
本文来自博客园,站在巨人的肩膀上,坚持开源精神,遵循开源协议:Apache Licene 2.0协议。
浙公网安备 33010602011771号