shell-运算符
一、算术运算符 expr 表达式 or var=`expr 表达式` 1、示例 [root@vm-paas scwyfy]# cat expr_demo.sh #!/bin/bash read -p "请输入第一个数字:" a read -p "请输入第二个数字:" b echo "a=${a}, b= ${b}" echo "a+b= `expr ${a} + ${b}`" echo "a-b= `expr ${a} - ${b}`" echo "a*b= `expr ${a} \* ${b}`" echo "b/a= `expr ${b} / ${a}`" echo "b%a= `expr ${b} % ${a}`" [root@vm-paas scwyfy]# sh expr_demo.sh 请输入第一个数字:1 请输入第二个数字:2 a=1, b= 2 a+b= 3 a-b= -1 a*b= 2 b/a= 2 b%a= 0
二、运算比较符 1. 整数型比较 方式1 [ $a operation $b ] operation: -eq -ne -gt -lt -ge -le 方式2 (($a operation $b)) operation: == != > < >= <= 2. 字符串比较 方式1 [ $a operation $b ] operation: > < == != > < 需要转义 会发生word splitting eg a="abc" b="abc efg" [ $a == $b ] :报错,$b会被拆分成多个值 方式2 [[ $a operation $b ]] operation: > < == != 无需转义,不会发生word splitting 推荐使用[[]] 示例脚本 [root@vm-paas scwyfy]# cat operation_int.sh #!/bin/bash read -p "请输入a: " a read -p "请输入b: " b echo "a=${a}, b=${b}" if [ $a -eq $b ] then echo " a eq b " else echo " a ne b" fi if [ $a -lt $b ] then echo " a lt b" else echo " a ge b" fi if [ $a -gt $b ] then echo "a gt b" else echo "a le b" fi [root@vm-paas scwyfy]#
三、布尔运算符、逻辑运算符 布尔运算符:! -o -a [ ! 1 \> 2 ]: echo $? 返回0 [ 1 \> 2 -o 1 == 1 ]: echo $? 返回0 [ 1 \> 2 -a 1 == 1 ]: echo $? 返回1 逻辑运算符:! || && [[ ! 1 > 2 ]]: echo $? 返回0 [[ 1 > 2 || 1 == 1 ]]: echo $? 返回0 [[ 1 > 2 && 1 == 1 ]]: echo $? 返回1 区别: 布尔运算符必须有[] 或 test命令执行 逻辑运算符必须有[[]]执行