1、test 测试命令 两种形式如下:
1.1、test [操作符选项] 表达式
1.2、[ 操作符选项 表达式 ] [ ]内两边要有空格
Tips:shell环境根据命令执行后的返回值($?),当返回值为0时,表示命令执行成功(或 表达式为true);返回值为非0时,表示失败(表达式为false)
1.3、文件测试操作符
-e 测试 指定的文件或者目录是否存在
-f 测试 指定的对象是否为文件;指定的文件是否存在
-d 测试 指定的对象是否为目录;指定的目录是否存在
-r 测试 当前用户是否有读权限
-w 测试 当前用户是否有写权限
-x 测试 当前用户是否有执行权限
-L 测试文件是否为符号链接(软链接文件)
例:[ -f /opt/abc.txt ]
2、shell中的整数值比较
整数值比较指的是给定的两个整数值,判断两者的关系:例如是否大于、等于、小于...
[ 整数变量1 操作符 整数变量2 ]
2.1、操作符
- -eq:第一个数等于(Equal)第二个数
- -ne:第一个数不等于(Not Equal)第二个数
- -gt:第一个数大于(Greater Than)第二个数
- -ge:第一个数大于或等于(Greater or Equal)第二个数
- -lt:第一个数小于(Lesser Than)第二个数
- -le:第一个数小于或等于(Lesser or Equal)第二个数
3、字符串的比较
3.1、常用操作符
- - =:字符串内容相同
- - !=:字符串内容不同,! 号表示相反的意思
- - -z:字符串内容为空
- - -n: 字符是否存在
格式:
[ "字符串1" = "字符串2" ] 或者 [ "字符串1" == "字符串2" ]
[ "字符串1" != "字符串2" ]
[ -z "字符串" ] -z:判断字符串是否为空,或者 指定的变量是否为空值
[ -n "字符串" ] -n:检查是否有字符串存在
3.2、浮点型数值的运算
1、 echo "浮点运算字符串" | bc
2、 awk 'BEGIN {print 浮点运算字符串}’
4、逻辑运算
- -a或 &:逻辑与,“而且”的意思全真才为真 前后条件都要成立
- -o或||:逻辑或,“或者”的意思一真即为真 只需前后条件中一个成立
- !: 非
[ 表达式1 ] && [ 表达式2 ] 等同于 [ 表达式1 -a 表达式2 ] [[ 表达式1 && 表达式2 ]]
[ 表达式1 ] || [ 表达式2 ] 等同于 [ 表达式1 -o 表达式2 ] [[ 表达式1 || 表达式2 ]]
5、三元运算符
java,c 环境:
条件表达式?a:b
当条件表达式为真时,取a值;当条件表达式为假时,取b值 Shell脚本:
[ 表达式 ] && a || b
当表达式成立 取a值:否则取b值
6、if条件语句
6.1、单分支
if [ 表达式 ];then
...
Fi
6.2、双分支
if [ 表达式 ];then
...
else
...
fi
6.3、多分支
if [ 表达式 ];then
...
elif [ 表达式 ];then
...
elif [ 表达式 ];then
...
[else]
fi
7、case 语句
case 变量 in
模式1)
....
;;
模式2)
....
;;
...
*)
....
esca