shell 脚本-07test命令

shell 脚本-test 命令

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

数值测试

参数说明
-eq等于则为真
-ne不等于则为真
-gt大于则为真
-ge大于等于则为真
-lt小于则为真
-le小于等于则为真
num1=1
num2=2
if test $num1 -eq $num2
then
    echo "test $num1 -eq $num2: $num1 等于 $num2"
else
    echo "test $num1 -eq $num2: $num1 不等于 $num2"
fi

if test $num1 -ne $num2
then
    echo "test $num1 -ne $num2: $num1 不等于 $num2"
else
    echo "test $num1 -ne $num2: $num1 等于 $num2"
fi

if test $num1 -gt $num2
then
    echo "test $num1 -gt $num2: $num1 大于 $num2"
else
    echo "test $num1 -gt $num2: $num1 不大于 $num2"
fi

if test $num1 -ge $num2
then
    echo "test $num1 -ge $num2: $num1 大于等于 $num2"
else
    echo "test $num1 -ge $num2: $num1 小于 $num2"
fi

if test $num1 -lt $num2
then
    echo "test $num1 -lt $num2: $num1 小于 $num2"
else
    echo "test $num1 -lt $num2: $num1 不小于 $num2"
fi

if test $num1 -le $num2
then
    echo "test $num1 -le $num2: $num1 小于等于 $num2"
else
    echo "test $num1 -le $num2: $num1 大于 $num2"
fi

字符串测试

参数说明
=等于则为真
!=不相等则为真
-z的长度为零则为真
-n字符串的长度不为零则为真
str1="Hello"
str2="World"
if test $str1 = $str2
then
    echo "test $str1 = $str2: $str1 等于 $str2"
else
    echo "test $str1 = $str2: $str1 不等于 $str2"
fi

if test $str1 != $str2
then
    echo "test $str1 != $str2: $str1 不等于 $str2"
else
    echo "test $str1 != $str2: $str1 等于 $str2"
fi

empty_str=""
if test -z "$empty_str"
then
    echo "test -z $empty_str: \"$empty_str\"是空字符串"
else
    echo "test -z $empty_str: \"$empty_str\"不是空字符串"
fi

if test -n "$empty_str"
then
    echo "test -n $empty_str: \"$empty_str\"不是空字符串"
else
    echo "test -n $empty_str: \"$empty_str\"是空字符串"
fi

文件测试

参数说明
-e如果文件存在则为真
-r如果文件存在且可读则为真
-w如果文件存在且可写则为真
-x如果文件存在且可执行则为真
-s如果文件存在且至少有一个字符则为真
-d如果文件存在且为目录则为真
-f如果文件存在且为普通文件则为真
-c如果文件存在且为字符型特殊文件则为真
-b如果文件存在且为块特殊文件则为真
file="./test.sh"
if test -e $file
then
    echo "文件存在"
else
    echo "文件不存在"
fi

if test -r $file
then
    echo "文件可读"
else
    echo "文件不可读"
fi

if test -w $file
then
    echo "文件可写"
else
    echo "文件不可写"
fi

if test -x $file
then
    echo "文件可执行"
else
    echo "文件不可执行"
fi

if test -s $file
then
    echo "文件不为空"
else
    echo "文件为空"
fi

if test -d $file
then
    echo "文件为目录"
else
    echo "文件不是目录"
fi

if test -f $file
then
    echo "文件为普通文件"
else
    echo "文件不是普通文件"
fi

if test -c $file
then
    echo "文件为字符设备文件"
else
    echo "文件不是字符设备文件"
fi

if test -b $file
then
    echo "文件为块设备文件"
else
    echo "文件不是块设备文件"
fi

test 命令的逻辑运算

参数说明
-a与运算
-a或运算
!非运算

优先级: ! 最高, -a 次之, -o 最低

if test -r $file -a -w $file
then
    echo "文件即可读也可写"
else
    echo "文件不可读或不可写或不可读也不可写"
fi

if test -r $file -o -x $file
then
    echo "文件可读或可执行"
else
    echo "文件既不可读也不可执行"
fi

if ! test -e $file
then
    echo "文件不存在"
else
    echo "文件存在"
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

eno_zeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值