简单流程控制语句
单分支if语句
语法格式
if [ 条件 ]
then
指令
fi
场景:
单一条件,只有一个输出
- 单分支if语句示例
#!/bin/bash
# 单if语句的使用场景
if [ "$1" == "nan" ]
then
echo "您的性别是 男"
fi
双分支if语句
语法格式
if [ 条件 ]
then
指令1
else
指令2
fi
场景:
一个条件,两种结果
- 双分支if语句示例
#!/bin/bash
# 单if语句的使用场景
if [ "$1" == "nan" ]
then
echo "您的性别是 男"
else
echo "您的性别是 女"
fi
多分支if语句
语法格式
if [ 条件 ]
then
指令1
elif [ 条件2 ]
then
指令2
else
指令3
fi
场景:
n个条件,n+1个结果
- 多分支if语句示例
#!/bin/bash
# 单if语句的使用场景
if [ "$1" == "nan" ]
then
echo "您的性别是 男"
elif [ "$1" == "nv" ]
then
echo "您的性别是 女"
else
echo "您的性别,我不知道"
fi
多if语句生产场景: 服务的启动
需求:
要求脚本执行需要有参数,通过传入参数来实现不同的功能。
参数和功能详情如下:
参数 | 执行效果 |
---|---|
start | 服务启动中… |
stop | 服务关闭中… |
* | 脚本 使用方式 [ start stop restart ] |
#!/bin/bash
# 多if语句的使用场景
if [ "$1" == "start" ]
then
echo "服务启动中..."
elif [ "$1" == "stop" ]
then
echo "服务关闭中..."
elif [ "$1" == "restart" ]
then
echo "服务重启中..."
else
echo "$0 脚本的使用方式: $0 [ start | stop | restart ]"
fi
case选择语句
case 语句格式
case 变量名 in
值1)
指令1
;;
值2)
指令2
;;
值3)
指令3
;;
esac
注意:
首行关键字是case,末行关键字esac
选择项后面都有 )
每个选择的执行语句结尾都有两个分号;
- case语句示例
场景:在多if语句的基础上对脚本进行升级
需求:
要求脚本执行需要有参数,通过传入参数来实现不同的功能。
参数和功能详情如下:
参数 | 执行效果 |
---|---|
start | 服务启动中… |
stop | 服务关闭中… |
restart | 服务重启中… |
* | 脚本 X.sh 使用方式 X.sh [ start stop restart ] |
脚本内容:
# cat case.sh
#!/bin/bash
# case语句使用场景
case "$1" in
"start")
echo "服务启动中..."
;;
"stop")
echo "服务关闭中..."
;;
"restart")
echo "服务重启中..."
;;
*)
echo "$0 脚本的使用方式: $0 [ start | stop | restart ]"
;;
esac
for循环语句
循环指定的所有元素,循环完毕之后就推出
语法格式
for 值 in 列表
do
执行语句
done
场景:
遍历列表
注意:
”for” 循环总是接收 “in” 语句之后的某种类型的字列表
执行次数和list列表中常数或字符串的个数相同,当循环的数量足够了,就自动退出
示例:遍历文件
#!/bin/bash
# for语句的使用示例
for i in $(ls /root)
do
echo "${i}"
done
while循环语句
语法格式
while 条件
do
执行语句
done
注意:
条件的类型:
命令、[[ 字符串表达式 ]]、(( 数字表达式 ))
场景:
只要条件满足,就一直循环下去
while语句示例
脚本内容
#!/bin/bash
# while的示例
a=1
while [ "${a}" -lt 5 ]
do
echo "${a}"
a=$((a+1))
done
until循环语句
语法格式
until 条件
do
执行语句
done
注意:
条件的类型:
命令、[[ 字符串表达式 ]]、(( 数字表达式 ))
场景:
只要条件不满足,就一直循环下去
until语句示例
脚本内容
#!/bin/bash
# until的示例
a=1
until [ "${a}" -eq 5 ]
do
echo "${a}"
a=$((a+1))
done