您的位置:首页 > 运维架构 > Shell

shell运算符

2017-03-01 15:49 148 查看
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 逻辑或,只要有一个为真,测试结果为真

逻辑运算符:
! 逻辑非

&& 逻辑与

|| 逻辑或

六、位运算
<< 左移运算

>> 右移运算

& 按位与运算

| 按位或运算

^ 按位异或运算

~ 按位非运算

七、自增自减
++ 自增

-- 自减

注意:操作对象只能是变量,不能是常数或表达式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 运算符