2.2.1 语法解读
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习。
基础知识
简介
条件结构能够根据某个特定的条件,结合内置的测试表达式功能,结合测试的结果状态值对于条件进行判断,然后选择执行合适的任务。在bash中,if命令是条件结构最简单的形式。shell中的if语句支持多种条件的决策形式:
单路决策 - 单分支if语句样式:if [ 条件 ]then指令fi特点:单一条件,只有一个输出
双路决策 - 双分支if语句样式:if [ 条件 ]then指令1else指令2fi特点:单一条件,两个输出
多路决策 - 多分支if语句样式:if [ 条件 ]then指令1elif [ 条件2 ]then指令2else指令3fi特点:n个条件,n+1个输出
单行命令写法if [ 条件1 ]; then 指令1; elif [ 条件2 ]; then 指令2; ... ; else 指令n; fi
关键点解读:1 if 和 then 配套使用2 if 和末尾的 fi 顺序反写
内嵌测试语句
shell的if语句中关于条件判断这块内嵌了如下几种测试表达式语句:[ 表达式 ] - 针对通用的判断场景 [[ 表达式 ]] - 针对扩展的判断场景(( 命令 )) - (())代替let命令来测试数值表达式
简单实践
实践1-单if实践
[root@localhost ~]# cat single_branch_if.sh
#!/bin/bash
# 单分支if语句的使用场景# 定制普通变量
gender="$1"# 条件判断逻辑
if [ "${gender}" == "nan" ]
thenecho "您的性别是 男"
fi
脚本执行效果
[root@localhost ~]# /bin/bash single_branch_if.sh nv
[root@localhost ~]# /bin/bash single_branch_if.sh nan
您的性别是 男
实践2-双if实践
[root@localhost ~]# cat double_branch_if.sh
#!/bin/bash
# 双分支if语句的使用场景# 定制普通变量
gender="$1"# 条件判断逻辑
if [ "${gender}" == "nan" ]
thenecho "您的性别是 男"
elseecho "您的性别是 女"
fi
脚本执行效果
[root@localhost ~]# /bin/bash double_branch_if.sh
您的性别是 女
[root@localhost ~]# /bin/bash double_branch_if.sh nan
您的性别是 男
[root@localhost ~]# /bin/bash double_branch_if.sh xxx
您的性别是 女
实践3-多if实践
[root@localhost ~]# cat multi_branch_if.sh
#!/bin/bash
# 多分支if语句的使用场景# 定制普通变量
gender="$1"# 条件判断逻辑
if [ "${gender}" == "nan" ]
thenecho "您的性别是 男"
elif [ "${gender}" == "nv" ]
thenecho "您的性别是 女"
elseecho "您的性别,我不知道"
fi
脚本执行效果
[root@localhost ~]# /bin/bash multi_branch_if.sh
您的性别,我不知道
[root@localhost ~]# /bin/bash multi_branch_if.sh nan
您的性别是 男
[root@localhost ~]# /bin/bash multi_branch_if.sh nv
您的性别是 女
[root@localhost ~]# /bin/bash multi_branch_if.sh xxx
您的性别,我不知道
小结