目录
1.shell变量判断方式
shell中,变量的判断方式有两种
test [操作符选项] 表达式
[ 操作符选项 表达式 ]
后一种方法省略了前一种方法的test,并用方括号将整个语句包裹了起来,但要注意的是“[”内两边要有空格
实例:
1.
2.
1.1 文件操作符
在上面的格式中,出现了文件操作符,那么上面是文件操作符?
文件操作符用于检测linux系统中的文件属性,常见的文件操作符有:
-
-e 测试指定的文件或者目录是否存在
-
-f 测试指定的对象是否为文件;指定的文件是否存在
-
-d 测试指定的对象是否为目录;指定的目录是否存在
-
-r 测试当前用户是否有读权限
-
-w 测试当前用户是否有写权限
-
-x 测试当前用户是否有执行权限
-
-L 测试文件是否为符号链接(软链接文件)
实例:
1.
2.
1.2 整数比较
shell中,整数的比较格式为
[ 整数变量1 操作符 整数变量2 ]
shell采用的操作符并不是符号,而是英文缩写
-
-eq 等于
-
-gt 大于
-
-lt 小于
-
-ge 大于等于
-
-le 小于等于
-
-ne 不等于
实例:
1.3 字符比较
字符串之间的比较,基本上就是等于不等的关系
[ "字符串1" = "字符串2" ] 或者 [ "字符串1" == "字符串2" ] 判断是否相等
[ "字符串1" != "字符串2" ] 判断是否不等
实例:
此外我们还可以使用字符串有关的操作符
[ -z "字符串" ] -z:判断字符串是否为空,或者 指定的变量是否为空值
[ -n "字符串" ] -n:检查是否有字符串存在
1.4 浮点数运算
浮点数运算也就是小数的运算,在shell中有两种实现的方法
echo "浮点运算字符串" | bc 交给bc计算器计算
awk 'BEGIN {print 浮点运算字符串}' 使用awk进行计算
实例:
1.5 逻辑式
逻辑式的几种操作符
与操作 -a && 前后条件都要成立
或操作 -o || 只需前后条件中一个成立
三元运算符
[ 表达式 ] && a || b
当条件表达式为真时,取a值;当条件表达式为假时,取b值 也称为短路
2.shell选择语句
2.1 if语句
2.1.1 单分支
单分支if语句只能进行一次条件判断,如果满足则执行,不满足则不执行
if [ 表达式 ];then
满足条件表达式执行语句
fi
2.1.2 双分支
双分支语句,当满足条件表达式时,执行then后面的语句,如果不满足则执行,else后面的语句
if [ 表达式 ];then
...
else
...
fi
2.1.3 多分支
多分支语句适用于需要多次判断的情况,会有多个条件表达式,根据判断的结果执行相应的语句,最后的
if [ 表达式 ];then
...
elif [ 表达式 ];then
...
elif [ 表达式 ];then
...
[else]
fi
2.2 case语句
case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分支选择结构。
case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下
case 变量 in
模式1)
....
;;
模式2)
....
;;
...
*)
....
esca