自动化运维:(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
自动化运维:(2)Shell 编程的流程控制的更多相关文章
- 自动化运维工具-Ansible之5-流程控制
自动化运维工具-Ansible之5-流程控制 目录 自动化运维工具-Ansible之5-流程控制 playbook条件语句 单条件 多条件 多条件运算 示例 playbook循环语句 with_ite ...
- 自动化运维之shell通配符,转义符,和元字符(二)
1 shell通配符 通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆.把通配符理解为shell特殊代号字符就可. 二.shell元字符 shell除了有通配符之外,由shel ...
- 自动化运维之shell引号和正则表达式(二)
1 shell引号 1)反斜线\ 转译 echo * 显示当前目录中所有的文件列表 echo \* 显示*字符 换行 find / \ 换行输入多行命令 > -name "test.t ...
- shell编程之流程控制
-d 判断该文件是否存在,并且是否为目录文件 -e 判断该文件是否存在 -f 判断该文件是否存在,并且是否为普通文件 形式 [ -e /home/cao/test.txt ] -r 文件 判断该文 ...
- Linux学习笔记(18) Shell编程之流程控制
1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用 ...
- shell编程 之 流程控制(条件语句和循环语句)
1 if ...else... 基本格式: if condition then commend else commend fi 当然也可以写到一行,用[ ]表明边界,用:表示分行.比如: if [ $ ...
- 【目录】Python自动化运维
目录:Python自动化运维笔记 Python自动化运维 - day2 - 数据类型 Python自动化运维 - day3 - 函数part1 Python自动化运维 - day4 - 函数Part2 ...
- 自动化运维:(1)认识 Shell
目录 (一)运维是什么? (二)什么是 Shell? (三)Shell的分类 (四)Shell脚本 (五)Shell的变量 (六)表达式 (七)Linux常见符号 (八)常见命令 (一)自动化运维是什 ...
- Linux Shell交互式自动化运维程序
Expect是Linux操作系统下的一个用来处理交互操作,系统默认是没有安装expect库,所以执行expect会提示找不到命令,需要手动安装,其它安装也比较简单,可以通过二进制源码包编译配置进行安装 ...
随机推荐
- Zabbix Web 中文字体显示问题
- SARS病毒 (生成函数 + 快速幂)
链接:https://ac.nowcoder.com/acm/contest/992/A来源:牛客网 题目描述 目前,SARS 病毒的研究在世界范围内进行,经科学家研究发现,该病毒及其变种的 DNA ...
- vulkan asynchronous compute
https://www.youtube.com/watch?v=XOGIDMJThto https://www.khronos.org/assets/uploads/developers/librar ...
- Map遍历效率 : entrySet > keySet
1 //entrySet() 2 for (Entry<String, String> entry : map.entrySet()) { 3 Stri ...
- spring boot 入门 使用spring.profiles.active来分区配置(转)
很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境 ...
- NodeList对象的特点
nodeList对象的特点1,nodeList是一种类数组对象,用于保存一组有序的节点.2,通过方括号来访问nodeList的值,有item方法与length属性.3,它并不是Array的实例,没有数 ...
- yii框架学习(获取插入后的id)
插入单条数据, 获取插入数据的id. $model->attributes['id']; new model 添加数据的时候, 需要注意, 如果是想要循环添加多条数据的情况, new mode ...
- Java项目出现的问题--实际项目01
1 从Excel中导入指纹图谱数据异常 在导入指纹图谱时对Excel的规范是有限制的,有时候报空指针异常是因为虽然有些地方看起来没有内容但是可能有空格键:解决方法是新建一个Excel表,把要用到的 ...
- 【luoguP1955 】[NOI2015]程序自动分析--普通并查集
题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3...代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变 ...
- 【MAC工具】手机抓包工具之 —— whistle
本文链接:https://blog.csdn.net/weixin_42534940/article/details/88783455安装参考: https://github.com/avwo/whi ...