一、查看linux 系统shell 支持
执行命令 cat /etc/shells
$ cat /etc/shells
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/zsh
二、常用的文件测试操作符
-f 文件 | 判断文件存在且为普通文件为真,即测试表达式成立 |
-d 文件(目录) | 判断文件存在且为目录文件为真,即测试表达式成立 |
-s 文件;大小 | 判断文件存在且为大小不为0则真,即测试表达式成立 |
-e 文件; | 判断文件存在为真,即测试表达式成立,只要有文件就行,要区别与“-f” |
-r 文件 | 判断文件存在且可读则真,即测试表达式成立 |
-w文件 | 判断文件存在且可写则真,即测试表达式成立 |
-x 文件 | 判断文件存在且可执行则真,即测试表达式成立 |
-l 文件 | 判断文件存在且为链接文件则真,即测试表达式成 |
注意:这些操作符合对于[[]]、[]、test几乎通用,更多man test
三、字符串测试操作
-z "字符串" | 若字符串长度为0则真;[ -z "abc" ]&&echo 1||echo 0 |
-n "字符串" | 若字符串长度不为0则真 |
"字符串1" = "字符串2" | 两个字符串相等为真 |
"字符串1" != "字符串2" | 两个字符串不相等为真 |
注意 | 字符串用双引号包含;比较符两端有空格 |
四、整数二元比较操作符
在[]及test比较 | 在(())和[[]]使用的比较符 | 说明 |
-eq | ==或= | equal的缩写 相等 |
-ne | != | no equal 的缩写 不相等 |
-gt | > | 大于 gerater than |
-ge | >= | 大于等于 gerater equla |
-lt | < | 小于 less than |
-le | <= | 小于等于 less equal |
注意:常用 [ $num1 -eq $num2 ] 注意空格 (($num1>$num2)) 无需空格常规的数学比较
五、逻辑连接符
在[]及test | 在(())和[[]]使用的比 | 说明 |
-a | && | and 与,两个为真则真 |
-o | || | or 或,两个有一个为真则真 |
! | ! | not 非,相反为真 |
六、条件测试与比较
1、test 测试表达式 常用 test -f file && echo true||echo false
2、[ 测试表达式 ] 特别常用 [ -f file ]&& echo true||echo false
3、[[ 测试表达式 ]] [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
[[ expr ]] 是bash中真正的条件判断语句,其语法更符合编程习惯 (比如 &&, || 的用法)