higheels 2020-06-03
条件测试方法 语法1:test <测试表达式> 这是利用test命令进行条件测试表达式的方法。test命令和"<测试表达式>"之间至少有一个空格 语法2:[ <测试表达式> ] 这是通过[]进行条件测试表达式的方法。和test命令用法相同,推荐此方法。[]的边界和内容至少有一个空格 语法3:[[ <测试表达式> ] ] 这是通过[[ ]]进行条件测试表达式的方法。[[]]的边界和内容至少有一个空格 语法4: ((<测试表达式> )) 这是通过(())进行条件测试表达式的方法,一般用于if语句里。(())前端不需要空格 语法1中的test命令和语法2中的[]是等价的。语法3中的[[]]为扩展的test命令,语法4中的(())命令常用于计算,建议在生产环境中使用相对友好的语法2,即中括号[]的语法 在双中括号[[]]中可以使用通配符(如*)等进行模式匹配,这是区别于其他几种语法的地方 &&、||、>、<等操作符可以应用到[[]]中,但不能应用于[]中,在[]中一般用-a、-o、-gt、-lt取代 对于整数的关系运算,也可以使用Shell的算术运算符(()) 文件测试表达式 常用文件测试操作符 -d 文件,directory 文件存在且为目录为真,即测试表达试成立 -f 文件,file 文件存在且为普通文件则为真 -e 文件, exist 文件存在则为真,-f,-e不辨别是目录还是文件 -r 文件,read 文件存在且可读则为真 -s 文件,size 文件存在且文件大小不为0为真 -w 文件,write 文件存在且可写则为真 -x 文件,executable 文件存在且可执行则为真 -L 文件,link 文件存在且为链接文件则为真 f1 -nt f2,nt为newer than 文件1比文件2新则为真 f1 -ot f2,ot为older than 文件1比文件2旧则为真 常用字符串测试操作符 -n "字符串" 若字符串的长度不为0,则为真,n可理解为no zero -z "字符串" 若字符串的长度为0,则为真 "串1"="串2" 若字符串1等于字符串2,则为真 "串1"!="串2" 若字符串1不等于字符串2,则为真 “=”两边需要有空格 整数二元比较操作符 []及test使用的比较符号 (())和[[]]使用的比较符号 说明 -eq ==或= 相等,equal -ne != 不相等,not equal -gt > 大于,greater than -ge >= 大于等于,greater equal -lt < 小于,less than -le <= 小于等于,less equal 逻辑操作符 []及test使用的比较符号 (())和[[]]使用的比较符号 说明 -a && and,与,两端都为真,结果为真 -o || or,或,两端有一个为真,结果为真 ! ! not,非,两端相反,结果为真