test 测试文件的表达式是否成立
格式:test 条件表达式
[ 条件表达式 ]
| 选项 | 作用 |
| -d | 测试是否为目录 |
| -e | 测试目录或文件是否存在 |
| -a | 测试目录或文件是否存在 |
| -f | 测试是否为文件 |
| -r | 测试当前用户是否有权限读取 |
| -w | 测试当前用户是否有权限写入 |
| -x | 测试当前用户是否有权限执行 |
| -L | 测试是否为软连接文件 |
test

[ 整数1 -操作符 整数2 ] 公式
-eq:第一个数等于第二个数
-ne:第一个数不等于第二个数
-gt:第一个数大于第二个数
-lt:第一个数小于第二个数
-le:第一个数小于或等于第二个数
-ge:第一个数大于或等于第二个数

- = 字符串相同
- != 字符串不相同
- -z 字符串内容为空
- -n 字符是否存在
格式:
- [ $a = $b ] 是否相同
-
- [ $a != $b ] 是否不相同
-
- [ -z $b ] 是否为空
-
- [ -n $a ] 字符是否存在

格式:[ 表达式1 ] 操作符 [ 表达式2 ] ...
命令1 操作符 命令2...
短路与
全真才为真;一假即为假
cmd1 && cmd2
短路或
一真才即为真;全假才为假
cmd1 || cmd2
应用
cmd1 && cmd2 || cmd3
用法
[[ == (通配符) ]]
[[ =~ (正则表达式) ]]
用途:都可以把命令放在一起,批量执行
- 格式:
-
- if 判断条件
-
- then
-
- 命令语句
-
- fi


- 格式:
- if 判断条件
- then
- 命令
- else
- 命令
- fi
实验1


实验2

2.3 多分枝语句
- 格式:
- if 判断条件
- then
- 命令
- elif 判断条件2
- then
- 命令
- ..........
- else
- 命令
- fi

猜丁壳游戏


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"。
==最后)表示默认模式,"*"相当于通配符 ===*。