代码段1
a=${1}
b=${2}
num=`expr $b - $a`#这里赋值等号两遍不能有空格很蛋疼
echo "haha + $num"
if [ `echo $num | awk -v bi=101 '{print($1>bi)?"1":"0"}'` -eq "1" ] # [ $num -gt 99 ]
then
echo b-a大于101
else
echo b-a小于101
fi
代码段2
a=${1}
b=${2}
num=99
c=`expr $b - $a`
echo "查看两个数的差值 + $c"
if [ $c -gt $num ];
then
echo b-a大于99
else if [ $c -lt $num ];
then
echo b-a小于99
else
echo b-a等99
fi
fi
代码段3
a=${1}
b=${2}
num=`expr $b - $a`#这里赋值不能有空格很蛋疼
echo "haha + $num"
if [ `echo $num | awk -v bi=99 '{print($1>bi)?"1":"0"}'` -eq "1" ];
then
echo b-a大于99
else if [ `echo $num | awk -v bi=99 '{print($1<bi)?"1":"0"}'` -eq "1" ];
then
echo b-a小于99
else
echo b-a等99
fi
fi
代码段1,代码段2都能实现判断两个数字的大小,但是3无法正确判断,在这里记录一下,以后找到原因在更新。
关系运算符表格整理
运算符 | 解释 | 变量量 | 案例例 |
-eq | 检测两个数是否相等,相等返回 true | a = 1 b = 2; | [ $a -eq $b ] 返回 false |
-ne | 检测两个数是否相等,不不相等返回 true | a = 1 b = 2; | [ $a -ne $b ] 返回 true |
-gt | 检测左边的数是否⼤大于右边的,如果是,则返回 true | a = 1 b = 2; | [ $a -gt $b ] 返回 false |
-lt | 检测左边的数是否⼩小于右边的,如果是,则返回 true | a = 1 b = 2; | [ $a -lt $b ] 返回 true |
-ge | 检测左边的数是否⼤大于等于右边的,如果是,则返回 true | a = 1 b = 2; | [ $a -ge $b ] 返回 false |
-le | 检测左边的数是否⼩小于等于右边的,如果是,则返回 true | a = 1 b = 2; | [ $a -le $b ] 返回 true |
布尔运算符表格整理
运算符 | 解释 | 变量量 | 案例例 |
! | ⾮非运算,表达式为 true 则返回 false,否则返回 true | a = 1 b = 2; | [ $a != $b ] 返回 true |
-o | 或运算,有⼀一个表达式为 true 则返回 true | a = 1 b = 2; | [ $a -lt 20 -o $b -gt 100 ] 返回 true |
-a | 与运算,两个表达式都为 true 才返回 true | a = 1 b = 2; | [ $a -lt 20 -a $b -gt 100 ] 返回 false |
逻辑运算符表格整理
运算符 | 解释 | 变量量 | 案例例 |
&& | 逻辑的 AND | a = 1 b = 2; | [ $a -lt 100 ] && [ $b -gt 100 ] 返回 false |
|| | 逻辑的 OR | a = 1 b = 2; | [ $a -lt 100 ] || [ $b -gt 100 ] 返回 true |
字符串运算符表格整理
运算符 | 解释 | 变量量 | 案例例 |
!= | 检测两个字符串串是否相等,不不相等返回 true。 | a = 1 b = 2; | [ $a != $b ] 返回 true |
-z | 检测字符串串⻓长度是否为0,为0返回 true | a = 1 b = 2; | [ -z $a ] 返回 false |
-n | 检测字符串串⻓长度是否为0,不不为0返回 true | a = 1 b = 2; | [ -n $a ] 返回 true |
str | 检测字符串串是否为空,不不为空返回 true | a = 1 b = 2; | [ $a ] 返回 true |
文件测试运算符表格整理
运算符 | 解释 | 变量量 | 案例例 |
-d file | 检测⽂文件是否是⽬目录,如果是,则返回 true | file="/Users/CX_M/Desktop/hello.sh" | [ -d $file ] 返回 false |
-r file | 检测⽂文件是否可读,如果是,则返回 true | file="/Users/CX_M/Desktop/hello.sh" | [ -r $file ] 返回 true |
-w file | 检测⽂文件是否可写,如果是,则返回 true | file="/Users/CX_M/Desktop/hello.sh" | [ -w $file ] 返回 true |
-x file | 检测⽂文件是否可执⾏行行,如果是,则返回 true | file="/Users/CX_M/Desktop/hello.sh" | [ -x $file ] 返回 true |
-f file | 检测⽂文件是否是普通⽂文件(既不不是⽬目录,也不不是设备⽂文 件),如果是,则返回 true | file="/Users/CX_M/Desktop/hello.sh" | [ -f $file ] 返回 true |
-s file | 检测⽂文件是否为空(⽂文件⼤大⼩小是否⼤大于0),不不为空返回 true | file="/Users/CX_M/Desktop/hello.sh" | [ -s $file ] 返回 true |
-e file | 检测⽂文件(包括⽬目录)是否存在,如果是,则返回 true | file="/Users/CX_M/Desktop/hello.sh" | [ -e $file ] 返回 true |
命令状态表格整理
状态码 | 描述 |
0 | 命令成功执⾏行行 |
1 | ⼀一般性的未知错误 |
2 | 不不适合的shell命令 |
126 | 命令不不可执⾏行行 |
127 | 没找到命令 |
130 | 通过Ctrl+C终⽌止的命令 |
255 | 正常范围之内的推出状态码 |