一、条件语句
1.1 测试
test 测试文件的表达式是否成立
格式:test 条件表达式
[ 条件表达式 ]
选项 | 作用 |
-d | 测试是否为目录 |
-e | 测试目录或文件是否存在 |
-a | 测试目录或文件是否存在 |
-f | 测试是否为文件 |
-r | 测试当前用户是否有权限读取 |
-w | 测试当前用户是否有权限写入 |
-x | 测试当前用户是否有权限执行 |
-L | 测试是否为软连接文件 |
test
1.2 比较整数
[ 整数1 -操作符 整数2 ] 公式
-eq:第一个数等于第二个数
-ne:第一个数不等于第二个数
-gt:第一个数大于第二个数
-lt:第一个数小于第二个数
-le:第一个数小于或等于第二个数
-ge:第一个数大于或等于第二个数
1.3 字符串比较
= 字符串相同
!= 字符串不相同
-z 字符串内容为空
-n 字符是否存在
格式:
[ $a = $b ] 是否相同
[ $a != $b ] 是否不相同
[ -z $b ] 是否为空
[ -n $a ] 字符是否存在
1.4 逻辑测试
格式:[ 表达式1 ] 操作符 [ 表达式2 ] ...
命令1 操作符 命令2...
短路与
全真才为真;一假即为假
cmd1 && cmd2
短路或
一真才即为真;全假才为假
cmd1 || cmd2
应用
cmd1 && cmd2 || cmd3
1.5 双中括号
用法
[[ == (通配符) ]]
[[ =~ (正则表达式) ]]
1.6 () {}
用途:都可以把命令放在一起,批量执行
二、if 语句
2.1 单分支语句
格式:
if 判断条件
then
命令语句
fi
2.2 双分枝语句
格式:
if 判断条件
then
命令
else
命令
fi
实验1
实验2
2.3 多分枝语句
格式:
if 判断条件
then
命令
elif 判断条件2
then
命令
..........
else
命令
fi
猜丁壳游戏
三、case分支语句
CASE 语句允许更清晰的脚本程序结构层次,常用于启动、重启或停止服务的脚本时,有些服务不提供此类控制脚本,您要编写 CASE 语句来编写。
case 语句主要用于以下情况:一个变量有多个值,需要对每个值执行不同的命令序列。这种情况与多分支 if 语句非常相似,只是 if 语句确定多个不同的条件,而 case 语句确定单个变量的不同值。
格式:
case $num in
条件判断1)
命令1
;;
条件判断2)
命令2
;;
条件判断3)
命令3
;;
........
*)
;;
echo " "
bash $0
;;
esac
利用case做个简易的Linux菜单
试试关闭防火墙
关于 CASE 语句的说明
必须以 "in "结束,每个模式必须以右括号") "结束。
双分号";; "表示命令序列的结束。
可以在模式字符串中使用方括号表示连续的范围,如"[0-9]",垂直条形符号"|"表示 "或",如 "A|B"。
==最后)表示默认模式,"*"相当于通配符 ===*。