目录
1.条件测试
1.1 文件测试
1.2 整数测试
1.3 字符串测试
1.4 逻辑测试
2.if语句
2.1 单分支if语句
2.2 双分支if语句
2.3 多分支if语句
3.case分支语句
1.条件测试
test命令
Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0(真true)时表示成功,返回值为非0值(假false)时表示失败或异常。
test 命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立($?返回值为 0 表示条件成立)。
示例:
1.1 文件测试
文件测试指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行等。
常用的操作符
(1)用test命令测试
(2)用【条件表达式】测试
1.2 整数测试
整数值比较指的是根据给定的两个整数值,判断第一个数与第二个数的关系,如是否大于、等于、小于第二个数。整数值比较的常用操作选项如下,使用时将操作选项放在要比较的两个整数之间。
格式:
test 整数1 选项 整数2
[ 整数1 选项 整数2 ]
(1)用test命令测试
(2)用【条件表达式】测试
(3)支持变量表示
(4)运算表达式判断,[[ 运算表达式 选项 整数]]
1.3 字符串测试
字符串比较通常用来检查用户输入、系统环境等是否满足条件,在提供交互式操作的shell脚本中,也可用来判断用户输入的位置参数是否符合要求。
格式:
test “字符串1” 选项 “字符串2”
[ “字符串1” 选项 “字符串2” ]
[[ "字符串1" =~ “字符串2” ]]
操作符:
符号 | 说明 |
= | 字符串内容相同 |
!= | 字符串内容不相同,!表示相反 |
-z | 字符串内容为空 |
-n | 检查是否有字符串 |
=~ | 判断包含效果,加两个[] |
1.4 逻辑测试
逻辑测试指的是判断两个或多个条件之间的依赖关系。当系统任务取决于多个不同条件时,判断是根据这些条件同时成立还是只要有其中一个成立等情况,需要有一个测试过程。
常用的测试操作符
!
$$
||
补充:
1.三元运算符
条件表达式?值1:值2
JAVA C三元运算符:当条件表达式成立则取值1,不成立则取值2
2.[ 表达式1 ] && 命令1 || 命令2
如果表达式1条件成立则执行命令1,如果表达式1条件不成立则命令2
3.[ 表达式1 ] || 命令1
如果表达式1条件成立不会执行或运算符后面的命令1,如果表达式1条件不成立则会执行或运算符后面的命令1
4.判断进程是否正在运行的方法
systemctl status 进程服务
netstat -ln(t/u)p | grep 进程名/:端口
ss -lntp | grep 进程名/:端口
lsof -i :端口
ps -elf | grep 进程名 | grep -v "grep" | wc -l
pidof 进程名 | wc -w
killall -0 进程名
2.if语句
2.1 单分支if语句
单分支if语句:对于单分支的选择结构,只有在==“条件成立”时才会执行相应的代码==,否则不执行任何操作。
示例:
2.2 双分支if语句
对于双分支的选择结构,要求针对“条件成立”“条件不成立”两种情况分别执行不同的操作。
示例:
2.3 多分支if语句
多分支结构能够根据多个互斥的条件分别执行不同的操作,实际上等同于嵌套使用的if语句。
案例:
案例:判断一个输入的内容是否为整数,如是整数再判断是基数还是偶数
-
3.case分支语句
案例1:
案例2: