关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:
运算符 | 单词 | 说明 | 举例 |
---|---|---|---|
-eq | equal | 检测两个数是否相等,相等返回 true。 | [ $a -eq $b ] 返回 false。 |
-ne | not equal | 检测两个数是否相等,不相等返回 true。 | [ $a -ne $b ] 返回 true。 |
-gt | great than | 检测左边的数是否大于右边的,如果是,则返回 true。 | [ $a -gt $b ] 返回 false。 |
-lt | less than | 检测左边的数是否小于右边的,如果是,则返回 true。 | [ $a -lt $b ] 返回 true。 |
-ge | great than or equal | 检测左边的数是否大于等于右边的,如果是,则返回 true。 | [ $a -ge $b ] 返回 false。 |
-le | less than or equal | 检测左边的数是否小于等于右边的,如果是,则返回 true。 | [ $a -le $b ] 返回 true。 |
$ [ 10 -gt 10 ] $ echo $? 1 $ [ 10 -eq 10 ] $ echo $? 0
案例:判断当前输入的用户是否存在。如果存在则提示“用户存在”否则提示“用户不存在”。
如果要在shell脚本使用linux命令,可以使用
$()
包裹命令例如:
disk_size=$(df -h | awk ‘NR==2 {print $5}’)
$ vim demo.sh #!/bin/bash #接受用户的输入 read -p '请输入需要查询的用户名:' username #获取指定用户名在passwd文件中出现的次数 count=$(cat /etc/passwd | grep $username | wc -l) #count=`cat /etc/passwd | grep $username | wc -l` #判断出现的次数,如果次数=0则用户不存在,反之存在 if [ $count == 0 ] then echo '用户不存在' else echo '用户存在' fi