test命令用于测试某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
shell文件中输入命令,通过特定的参数可以对数值、字符串进行比较,如下参数及示例。
1. 数值比较参数
参数
说明
-eq
等于为真
-ne
不等于为真
-gt
大于为真
-ge
大于等于为真
-lt
小于为真
-le
小于等于为真
举例,在myshell.sh脚本中加入如下内容,将两个变量值进行比较:
#!/bin/bash
echo "my first shell !"
var0=123
var1=123
if test $var0 -eq $var1
then
        echo "the same !"
else   
        echo "different !"
fi      

var0=12
var1=13
if test $var0 -lt $var1
then
        echo "less then !"
else   
        echo "greater than or equal to !"
fi
图片1.png
执行结果:
图片2.png
2. 字符串比较参数
参数
说明
=
等于为真
!=
不等于为真
-z
字符串长度为零则为真
-n
字符串长度不为零则为真
举例,在myshell.sh中添加如下内容,进行变量值比较:
#!/bin/bash
echo "my first shell !"
var0="abc"
var1="abc"
if test $var0 = $var1
then
        echo "the same !"
else
        echo "different !"
fi


if test -z $var0
then
        echo "the len is zero !"
else
        echo "the len is not zero !"
fi
图片3.png
执行结果如下:
图片4.png
同时也可以对文件进行比较。
3. 文件比较参数
参数
说明
-e
文件存在则为真
-r
如果文件存在且可读则为真
-w
如果文件存在且可写则为真
-x
如果文件存在且可执行则为真
-s
如果文件存在且至少有一个字符则为真
-d
如果文件存在且为目录则为真
-f
如果文件存在且为普通文件则为真
-c
如果文件存在且为字符型特殊文件则为真
-b
如果文件存在且为块特殊文件则为真
举例,首先建立test.txt文件和work文件夹,然后在myshell.sh脚本中加入如下内容,来判断是否存在test.txt文件和work文件夹:
#!/bin/bash
echo "my first shell !"
if test -e test.txt
then
        echo "the file is exist !"
else   
        echo "the file is not exist !"
fi      

if test -d work
then
        echo "the dir is exist !"
else   
        echo "the dir is nor exist !"
fi
图片5.png
执行结果如下:
图片6.png
删除创建的test.txt文件和work目录,执行结果如下:
图片7.png

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Powered by Discuz! X3.5  © 2001-2013 Comsenz Inc.