Linux-文件比较与测试

一.算术比较

算术操作符主要有以下几个:

-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中 “=“ 的用法,如果 “=” 前后各有一个空格,则表示比较, 如果没有空格,则表示赋值。




 

猜你喜欢

转载自shao246.iteye.com/blog/2202851