自动化运维:(2)Shell 编程的流程控制
一、 if语句
1、单分支if语句——单一条件,只有一个输出
#!/bin/bash # 单if语句的使用场景 if [ "$1" == "nan" ] then echo "您的性别是 男" fi
2、双分支if语句——一个条件,两种结果
#!/bin/bash # 单if语句的使用场景 if [ "$1" == "nan" ] then echo "您的性别是 男" else echo "您的性别是 女" fi
3、多分支if语句——n个条件,n+1个结果
#!/bin/bash # 单if语句的使用场景 if [ "$1" == "nan" ] then echo "您的性别是 男" elif [ "$1" == "nv" ] then echo "您的性别是 女" else echo "您的性别,我不知道" fi
二、case选择语句
case语句格式:
case 变量名 in 值1) 指令1 ;; 值2) 指令2 ;; 值3) 指令3 ;; esac
示例:
# cat case.sh #!/bin/bash # case语句使用场景 case "$1" in "start") echo "服务启动中..." ;; "stop") echo "服务关闭中..." ;; "restart") echo "服务重启中..." ;; *) echo "$0 脚本的使用方式: $0 [ start | stop | restart ]" ;; esac
三、for循环语句
#!/bin/bash # for语句的使用示例 for i in $(ls /root) do echo "${i}" done
四、while循环语句
#!/bin/bash # while的示例 a=1 while [ "${a}" -lt 5 ] do echo "${a}" a=$((a+1)) done
五、until循环语句
#!/bin/bash # until的示例 a=1 until [ "${a}" -eq 5 ] do echo "${a}" a=$((a+1)) done
六、复杂流程控制语句——函数
函数就是将某些命令组合起来实现某一特殊功能的方式,是脚本编写中非常重要的一部分。
简单函数定义:
#!/bin/bash # 函数使用场景一:执行频繁的命令 dayin(){ echo "My name is mzf" } # 调用: dayin
函数传参:
#!/bin/bash # 函数的使用场景二 dayin(){ echo "My name is $1" } # 调用并传入参数 dayin mzf
调用脚本时传参:
#!/bin/bash # 函数传参演示 # 定义传参数函数 dayin(){ echo "My name is $1, gender $2, age $3" } # 函数接收调用脚本时传进的传参 dayin $1 $2 $3