Appearance
基本语法
test condition
test 1 = 1 echo $?
[ condition ]
[ 1 = 2 ] echo $?
[ condition ] 空格不能省略,condition 中的空格也不能省略。如 [ 1=2 ] $? 的结果是 0。
condition 如果只是一个值,那么值不为空字符串时返回 true。如 [ foo ] 返回 true,[ ] 返回 false,[ ] 返回 false。
常用判断条件
两个整数之间的比较
-eq
等于(equal) [ 1 -eq 1 ]
-ne
不等于(not equal)
-lt
小于(less than)
-le
小于等于(less equal)
-gt
大于(greater than)
-ge
大于等于(greater equal)
如果是字符串之间的比较,用 = 判断相等,!= 判断不等。
按照文件权限进行判断
-r
有读的权限(read) [ -r foo.txt ]
-w
有写的权限(write)
-x
有执行的权限(execute)
按照文件类型进行判断
-e
文件存在(existence) [ -r foo.txt ]
-f
文件存在并且是一个常规的文件(file)
-d
文件存在并且是一个常规的文件目录(directory)
多条件判断
&&
前一个命令执行成功,才执行下一条命令。
||
前一条命令执行失败,才执行下一条命令。
[ foo ] && echo true || echo false [ ] && echo true || echo false
效果等同于其它语言中的三元运算符 foo ? true : false