计算机网络/计算机科学与应用/系统/运维/开发

六、Shell脚本的条件测试

一、Shell脚本的条件测试

1、条件测试常用语法

语法1: test <测试表达式>  利用test命令进行条件测试表达式

语法2:[<测试表达式>]  通过[] 进行条件测试表达式 []的边界和内容之间至少有一个空格

语法3:[[<测试表达式>]] 通过[[]]双中括号 进行条件测试表达式的方法

语法4:((<测试表达式>)) 通过(()) 双小括号 进行条件测试表达式方法  

&&、||、>、<等操作符可以应用于[[]]中,但不能应用于[]中,在[]中一般用-a、-o、-gt(用于整数)、-lt(用于整数)代替上述操作符

二、test条件测试

1、test <测试表达式>

test -f file && echo true || echo false

test命令测试表达式:

[root@localhost shell]# test -f test.sh && echo 1

1

[root@localhost shell]# test -f test.sh || echo 0

2、 [](中括号)条件测试语法

[ <测试表达式> ]

中括号内部的两端要有空格,[]和test等价,即test的所有判断选项都可以直接在[]里使用

[root@localhost shell]# [ -f test.sh ] && echo 1 || echo 0

1

3、[[]]条件测试语法

[[ <测试表达式> ]]

注意:双中括号里的两端也要有空格

[root@localhost shell]# [[ -f test.sh ]] && echo 1 || echo 0

1

三、文件测试表达式

1、常用文件测试操作符

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

-f文件  文件存在且普通文件则为真

-e文件  文件存在则为真 (注意-e 不辨别是目录还是文件)

-r文件  文件存在且可读为真

-s文件  文件存在文件大小不为0则为真

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

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

-L文件  文件存在且为链接文件则为真

f1 -nt f2  文件f1 比文件f2 新则为真 

f1 -ot f2  文件f1 比文件f2 旧则为真 

2、文件测试表达式举例

(1)、普通文件测试表达式示例

[root@localhost shell]# [ -f test.sh  ] && echo 1 || echo 0

1

(2)目录文件(测试文件类型)

# test为目录 则为真

[root@localhost shell]# [ -d test ] && echo 1 || echo 0

1

# test.sh 不为目录则为假

[root@localhost shell]# [ -d test.sh ] && echo 1 || echo 0

0

3、测试文件属性举例

# -r 是否可读

[root@localhost shell]# [ -r test.sh ] && echo 1 || echo 0

1

# -x 是否可执行

[root@localhost shell]# [ -x test.sh ] && echo 1 || echo 0

1

# -w 是否可写 

[root@localhost shell]# [ -w test.sh ] && echo 1 || echo 0

1

提示:

测试文件的读、写、执行等属性,不光是根据文件属性rwx的标识来判断,还要看当前执行测试的用户是否真的可以按照对应的权限操作该文件

3、测试Shell变量示例

四、字符串测试表达式

1、字符串测试操作符


无才无以立足,不苦不能成才。

评论

^