一.算术比较
算术操作符主要有以下几个:
-eq:等于(equal)
-gt: 大于(greater than)
-lt: 小于(less than)
-ge:大于或等于(greater than or equal)
-le:小于或等于(less than or equal)
对变量或值进行算术条件比较,如果两个条件通过&&,||连接在一起,记得在操作数之间要有一个空格。例如:
[ $var1 -eq 0 ] || [$var2 -lt 10 ]
二.文件系统相关属性测试
与文件系统相关的测试符号主要有:
[ -d $var ]:如果给定变量为目录,则返回真。
[ -f $var ]: 如果给定变量为文件,则返回真。
[ -x $var ]: 如果给定变量是可执行的,则返回真。
[ -w $var ]: 如果给定变量可写,则返回真。
[ -r $var ]: 如果给定变量可读,则返回真。
[ -e $var ]: 如果给定变量存在,则返回真。
.....
使用方法如下:
fpath="/etc/passwd"
if [ -e $fpath ]; then
echo “File exists"
else
echo "Does not exist"
fi
三.字符串比较
比较两字符串是否相等:
[[ $str1 = $str2 ]]: 当str1等于str2时,返回真,即str1和str2包含的文本是一模一样的,也可以写成[[ $str1 == $str2 ]] 。
其他字符串比较符号:
[ $str1 != $str2 ]: 如果str1和str2不相同,则返回真。
[ $str1 > $str2 ]: 如果str1的字母顺序比str2大,则返回真。
[ $str3 < $str2 ]: 如果str1的字母顺序比str2小,则返回真。
[ -z $str1 ]: 如果str1为空,则返回真。
[ -n $str1 ]: 如果str1非空,则返回真。
注意:Linux中 “=“ 的用法,如果 “=” 前后各有一个空格,则表示比较, 如果没有空格,则表示赋值。