Shell test 命令

Shell 中的test 命令用于检查某个条件是否成立,它可以进行数值,字符和文件三个方面的测试。

数值测试

参数 说明

-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

字符串测试

参数 说明

=     等于则为真

!=   不相等则为真

-z字符串  字符串的长度为零则为真

-n 字符串  字符串的长度不为零则为真

实例演示:

num1="rulnoob"

num2="runoob"

if test $num1 = $num2

then 

  echo '两个字符串相等!'

else

  echo '两个字符串不相等!'

fi

输出结果:

两个字符串不相等!

文件测试

参数  说明

-e文件名 说明文件存在则为真

-r 文件名 如果文件存在且可读则为真

-w文件名 如果文件存在且可写则为真

-x文件名 如果文件存在且可执行则为真

-d文件名 如果文件存在且为目录则为真

-f文件名 如果文件存在且为字符型特殊文件则为真

-b文件名  如果文件存在且为块特殊文件则为真

实例演示:

cd /bin

if test -e ./bash

then 

  echo '文件已存在!'

else  

  echo '文件不存在!'

fi

输出结果:

文件已经存在!

另外 Shell 还提供了与(-a)或(-o)非(!)三个逻辑操作符用于将测试条件链接起来,其优先级为:!最高 -a 次之 -o 最低

 

posted @ 2018-01-07 15:47  zhangsima  阅读(152)  评论(0编辑  收藏  举报