Linux Shell条件判断
判断语句
基本语法
[ 条件判断式 ]
注
1. 条件判断式前后都要有空格
2. 非空返回true,空返回false
- [ hello ] : 返回true
- [ ] : 返回false
判断条件
字符串比较
=
字符串是否相等
两个整数的比较
-lt
小于-gt
大于-eq
等于-le
小于等于-ge
大于等于-ne
不等于
按照文件权限进行判断
-r
有读的权限-w
有写的权限-x
有执行的权限
按照文件类型进行判断
-f
文件存在且是一个常规文件-e
文件存在-d
文件存在且是一个目录
举例
- 例子
- 结果
三目运算写法
[ 条件判断式子 ] && 语句1 || 语句2
- 满足条件则执行语句1
- 否则执行语句2
- 例子
- 结果
if判断
基本语法
- 单分支
if [ 条件判断式 ]
then
代码
fi
或者
if [ 条件判断式 ]
then
代码
else
代码
fi
- 多分支
if [ 条件判断式 ]
then
代码
elif
then
代码
fi
注:
1. if
后面需要空格
2. [ 条件判断式 ]
: 中括号与条件判断式之间要有空格
3. else
后面不跟then
, if和elif 后面要跟 then
举例
- 例子
- 结果
case判断
基本语法
case $变量名 in
"值1")
如果变量值等于1,则执行程序1
;;
"值2")
如果变量值等于2,则执行程序2
;;
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
与c语言switch的对比
-
开关语言都由四部分构成,不同语言用不同方式进行表达
- 开关变量
- 分支
- 分支代码
- 当前分支结束符号
-
对应关系
举例
- 例子
- 结果