shell运算符主要有:比较运算符(用于整数比较)、字符串运算符(用于字符串测试)、文件操作运算符(用于文件测试)、算术运算符、逻辑运算符、位运算符、自增自减运算符等。
测试结构:
方法一: test expression
方法二:[ expression ] (注意:中括号左右的空格)
一、整数比较
整数测试符:
-eq 等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
-ne 不等于
二、字符串测试
字符串测试符:
-z "string" 为空返回真,否则为假
-n "string" 非空返回真,否则为假
"string1" = "string2" 相同返回真,否则为假
"string1" != "string2" 不相同返回真,否则为假
"string1" > "string2" 按字典排序,string1在string2之前,返回真,否则为假
"string1" < "string2" 按字典排序,string1在string2之后,返回真,否则为假
注意:[ "str1" \> "str2 ] (需要进行转义)
[[ "str1" \> "str2 ]] (不需要进行转义)
三、文件测试
文件测试符:
-b FILE 块文件返回真
-c FILE 字符设备文件返回真
-d FILE 目录文件返回真
-e FILE 存在返回真
-f FILE 普通文件返回真
-x FILE 可执行文件返回真
-w FILE 可写返回真
-r FILE 可读返回真
-l FILE 链接文件返回真
-p FILE 管道文件返回真
-s FILE 文件大小不为0返回真
-S FILE socket文件返回真
-g FILE 文件设置了SGID时返回真
-u FILE 文件设置了SUID时返回真
-k FILE 文件设置了sticky属性时返回真
-G FILE 文件属于有效的用户组时返回真
-O FILE 文件属于有效的用户时返回真
FILE1 -nt FILE2 FILE1比FILE2新时返回真
FILE1 -ot FILE2 FILE1比FILE2旧时返回真
四、算术运算符(结合shell内建命令let使用)
常规算术运算符
+、-、*、/、%、**
复合算术运算符
+=、-=、*=、/=、%=
其它算数运算符
1)$[]和$(( ))
2)expr命令
高精度计算(bc命令)
eg. bc <<< "scale=2;111/222;"
echo "scale=2;111/222;" | bc
五、逻辑运算
逻辑测试符:
!expression 逻辑非
expression1 -a expression2 逻辑与,同时为真,测试结果为真
expression1 -o expression2 逻辑或,只要有一个为真,测试结果为真
逻辑运算符:
! 逻辑非
&& 逻辑与
|| 逻辑或
六、位运算
<< 左移运算
>> 右移运算
& 按位与运算
| 按位或运算
^ 按位异或运算
~ 按位非运算
七、自增自减
++ 自增
-- 自减
注意:操作对象只能是变量,不能是常数或表达式
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。