shell test命令

写shell脚本,经常会遇到判断条件,例如判断字符相不相等、文件存不存在。下面从数字、字符、文件三个方面梳理一下判断方法。

1、数值测试

-eq 等于返回真
-ne 不等于返回真
-gt 大于返回真
-ge 大于等于返回真
-lt 小于返回真
-le 小于等于返回真

 

 

 

 

 

 

 

示例

num1=100 
num2=100 
if test $[num1] -eq $[num2] 
then 
      echo '两个数相等!' 
else 
      echo '两个数不相等!' 
fi

输出:
两个数相等!

-----------------------------------------------------
#代码中的[]执行基本的算数运算,如:

#!/bin/bash 
a=5 
b=6 
result=$[a+b]    #注意等号两边不能有空格
echo    "result 为:$result"
输出:
result 为:11

2、字符串测试

= 等于则返回真
!= 不相等则返回真
-z 字符串 字符串长度为零则返回真
-n 字符串 字符串长度不为零则返回真

 

 

 

 

 

示例

num1="ru1noob" 
num2="runoob" 
if test $num1 = $num2 
then 
      echo '两个字符串相等!' 
else 
      echo '两个字符串不相等!' 
fi

输出:
两个字符串不相等!

3、文件测试

-e 文件名 如果文件存在则为真
-r 文件名 如果文件存在且可读则为真 
-w 文件名 如果文件存在且可写则为真 
-x 文件名 如果文件存在且可执行则为真 
-s 文件名 如果文件存在且至少有一个字符则为真 
-d 文件名 如果文件存在且为目录则为真 
-f 文件名 如果文件存在且为普通文件则为真 
-c 文件名 如果文件存在且为字符型特殊文件则为真 
-b 文件名 如果文件存在且为块特殊文件则为真

 

 

 

 

 

 

cd /bin
if test -e ./bash 
then 
    echo '文件已存在!' 
else 
    echo '文件不存在!' 
fi

输出:
文件已存在!

Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,优 先级从高到低依次为:”!”,”-a”,”-o”。

cd /bin 
if test -e ./notFile -o -e ./bash 
then 
    echo    '有一个文件存在!' 
else 
    echo    '两个文件都不存在' 
fi

输出:
有一个文件存在!

 

原文地址:https://www.cnblogs.com/yanh0606/p/11396969.html