shell脚本之test命令

shell脚本之test命令

    • 数值比较:
    • 2. 字符串比较:
    • 3. 文件测试:
    • 4. 逻辑操作:
    • 5. 其他测试:

test命令在Shell脚本中用于进行条件测试和条件判断。它用于检查文件、字符串和数值的各种条件,并返回一个状态码,表示条件是否为真。test命令的返回值为0表示真,非零值表示假。

下面是test命令的一些常见用法和示例:

数值比较:

-eq:等于

-ne:不等于

-gt:大于

-ge:大于等于

-lt:小于

-le:小于等于

-eq:等于

-ne:不等于

-gt:大于

-ge:大于等于

-lt:小于

-le:小于等于例如,检查变量num1是否大于变量num2:

num1=10  
num2=5  
  
test $num1 -gt $num2

如果num1大于num2,则返回值为0,否则为非零值。

2. 字符串比较:

* `=`:相等  
* `!=`:不相等  
* `-z`:长度为零(空字符串)  
* `-n`:长度非零(非空字符串)例如,检查变量`str1`是否等于变量`str2`
str1="Hello"  
str2="World"  
  
test $str1 = $str2

如果str1等于str2,则返回值为0,否则为非零值。

3. 文件测试:

* `-e`:文件或目录是否存在  
* `-f`:是否为文件  
* `-d`:是否为目录  
* `-s`:文件大小是否大于零  
* `-r`:是否有读取权限  
* `-w`:是否有写入权限  
* `-x`:是否有执行权限例如,检查文件`/path/to/file.txt`是否存在并且大小大于零:
test -e /path/to/file.txt -a -s /path/to/file.txt

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

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

如果文件存在且大小大于零,则返回值为0,否则为非零值。

4. 逻辑操作:

* `&&`:逻辑与(AND)  
* `||`:逻辑或(OR)例如,检查变量`num1`是否大于10并且小于20:
num1=15  
  
test $num1 -gt 10 -a $num1 -lt 20

如果num1大于10且小于20,则返回值为0,否则为非零值。

5. 其他测试:

* `-o`:或(OR)运算符,用于多个条件之间的或运算。例如,检查变量`num1`是否大于10或小于5:
num1=3  
  
test $num1 -gt 10 -o $num1 -lt 5

你可能感兴趣的:(shell,开发语言,服务器)