标签:.sh 工作 相等 帮助 括号 一个 连接 man 测试文件
条件测试语法:语法1:test <测试表达式> 这是利用test命令进行条件测试表达式的方法。
语法2:[ <测试表达式> ]:这是通过单括号进行条件测试表达式的方法,和test命令的用法相同,推荐使用的
语法3:[[ <测试表达式> ]]:这是通过[[]]进行条件测试表达式的方法,是比test和[]更新的语法格式
语法4:((<c测试表达式>)):这是通过(())进行条件表达式的方法,一般用于if语句里
针对上面的说明:
语法1和语法2是相同的,语法3是test的扩展。推荐使用语法2
在[[]]中可以使用通配符等进行模式匹配,这就是区别与其他几种语法格式的地方
&&,||,>,<等操作符可以应用与[[]]中,但不能应用与[]中,在[]中一般用-a,-o,-get(用于整数),-lt(用于整数)代替上面的操作符。
对于整数的关系运算符,也可以使用算术运算符(())
root@ubuntu:/home/xpg# test -f /home/xpg/match.sh && echo good || echo bad good
范例:使用-z测试一个字符串,如果字符串的长度为0则返回真,-n相反
root@ubuntu:/home/xpg# char=oldboy root@ubuntu:/home/xpg# test -z "$char" && echo 1 || echo 0 0 root@ubuntu:/home/xpg# char= root@ubuntu:/home/xpg# test -z "$char" && echo 1 || echo 0 1 root@ubuntu:/home/xpg#
[ ]和test性质一样,在工作中主要使用这种。
root@ubuntu:/home/xpg# [ -f /home/xpg/match.sh ] && echo 1 || echo 0 1 上下的性质是一样的 root@ubuntu:/home/xpg# [ -f /home/xpg/match.sh ] && echo 1 1 root@ubuntu:/home/xpg# [ -f /home/xpg/match.sh ] || echo 0 root@ubuntu:/home/xpg#
由于test 表达式 和 [ ]是一样的,可以使用man test查看帮助的
root@ubuntu:/home/xpg# [[ -f /home/xpg/match.sh ]] && echo 1 || echo 1
1
[[ ]]和[ ]的区别在于[[ ]]可以使用通配符等进行模式匹配,并且&&,||,>,<等操作符可以应用在[[ ]]中,但不能应用在[ ],在[ ]中一般使用-a,-o,-gt,-lt代替上面的[[ ]].
文件测试表达式
先补充一点:
str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) -z str1 当串的长度为0时为真(空串) str1 当串str1为非空时为真 !str2 当子串为空时为真 int1 -eq int2 两数相等为真 int1 -ne int2 两数不等为真 int1 -gt int2 int1大于int2为真 int1 -ge int2 int1大于等于int2为真 int1 -lt int2 int1小于int2为真 int1 -le int2 int1小于等于int2为真
-d :文件 文件存在且为目录则是真
-f :文件 文件存在并且为普通文件为真
-e :文件 文件存在则为真,和上面-d,-f的区别是不分辨是目录还是文件
-r :文件 文件存在并且可读则为真
-s :文件 文件存在并且大小不为0则为真
-w :文件 文件存在并且可写为真
-x :文件 文件存在并且可执行为真
-L :文件 文件存在并且为连接文件为真
f1 -nt f2, nt的全拼为newer than 文件f1比文件f2新则为真。
f1 -ot f2;-ot的全拼为older than 文件f1比文件f2旧则为真
使用-e和-d结合使用: root@ubuntu:/home/xpg# [ -e /home/xpg/match.sh -a -d /home/xpg/match.sh ] && echo 1 || echo 0 0
生产的启动脚本
例如:
root@ubuntu:/home/xpg# [ -x /usr/bin/apache2 ] || exit 5 #简单的判断,如果这个文件不存在或者不能被执行,返回exit 5 exit xpg@ubuntu:~$ echo $? 5 xpg@ubuntu:~$
写出简单高效的测试文件
在做测试判断的时候,不一定非要按照“前面的操作成功了如何,否则如何”的方法,有时候直接部分判断,有时候看起来更加简单。
root@ubuntu:/home/xpg# [ -x xpg ] && echo 1 root@ubuntu:/home/xpg# [ -x xpg ] || echo 1 1
标签:.sh 工作 相等 帮助 括号 一个 连接 man 测试文件
原文地址:http://blog.51cto.com/11726212/2065465