自动化运维:(3)写一个简单的Shell脚本(案例)
一、需求
1、test.sh 脚本执行时候需要添加参数才能执行
参数和功能详情如下:
参数 执行效果 start 启动中... stop 关闭中... restart 重启中... * 脚本帮助信息...
2、参数的数量有限制,只能是1个,多余一个会提示脚本的帮助信息
3、帮助信息使用函数来实现
信息内容:脚本 test.sh 使用方式: test.sh [ start|stop|restart ]
二、知识点分析
1、test.sh 脚本执行时候需要添加参数才能执行
脚本传参、case语句
2、参数的数量有限制,只能是1个,多余一个会提示脚本的帮助信息
参数数量、条件表达式(验证+数字)、if语句
3、帮助信息使用函数来实现
函数定义+调用
4、if语句和case语句嵌套
if语句在外,case语句在内
三、脚本编写流程
1、先写主流程框架
2、完善函数功能
3、完善需求功能
四、代码
#!/bin/bash # 定义本地变量
arg="$1" # 脚本帮助信息
usage(){
echo "脚本 $0 的使用方式是: $0 [ start|stop|restart ]"
} # 函数主框架
if [ $# -eq 1 ]
then
case "${arg}" in
start)
echo "启动中..."
;;
stop)
echo "关闭中..."
;;
restart)
echo "重启中..."
;;
*)
usage
;;
esac
else
usage
fi
自动化运维:(3)写一个简单的Shell脚本(案例)的更多相关文章
- 如何写一个简单的shell
如何写一个简单的shell 看完<UNIX环境高级编程>后我就一直想写一个简单的shell来作为练习,因为有事断断续续的写了好几个月,如今写了差不多来总结一下. 源代码放在了Github: ...
- 一个简单的shell脚本
一个简单的shell脚本 一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[KANO@kelvin ~]$ who2.KANO tt ...
- 自动化运维工具Ansible的简单使用
一 基础使用 1. 简介ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...
- 自动化运维:(1)认识 Shell
目录 (一)运维是什么? (二)什么是 Shell? (三)Shell的分类 (四)Shell脚本 (五)Shell的变量 (六)表达式 (七)Linux常见符号 (八)常见命令 (一)自动化运维是什 ...
- UNIX-LINUX编程实践教程->第八章->实例代码注解->写一个简单的shell
一 分析 要实现一个shell,需包含3个步骤 1)读入指令 2)指令解析 3)执行指令 1 从键盘读入指令 从键盘读入指令的几个要点: 1)调用getc函数等待并获取用户键盘输入. 2)每一行命令的 ...
- 如何在linux下编写一个简单的Shell脚本程序
在了解了linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了 Shell既为一种命令解释解释工具,又是一种脚本编程语言 ...
- 一个简单的Shell脚本(解决windows上文本在macos上乱码问题)
之所以有这一篇文章,是因为之前我写过的一篇文章:“解决Mac上打开txt文件乱码问题”:传送门: https://www.cnblogs.com/chester-cs/p/11784079.html ...
- Linux运维初级教程(一)Shell脚本
序,掌握shell脚本是linux运维工程师的最基础技能. 一.脚本语言 与高级语言不通,脚本语言运行时需要调用相应的解释器来翻译脚本中的内容. 常见的脚本语言有Shell脚本.Python脚本.ph ...
- 自动化运维Ansible-01-安装及简单的使用
实验环境:Centos 7.x Ansible版本:ansible 2.9.13 服务端的操作 1.系统默认的yum仓库中没有找到ansible,这里我们先安装epel源(需要用到CentOS-Bas ...
随机推荐
- esxi克隆虚拟机
1.->选中虚拟机->导出(需要关闭虚拟机电源) 此时会下载下两个文件: 2.新建虚拟机 ->从OVF或OVA文件部署虚拟机 然后创建虚拟机,选择第二项 然后填入新虚拟机名称,并把下 ...
- Java8-Stream-No.07
import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; public class S ...
- Codeforces Round #586 (Div. 1 + Div. 2) E. Tourism
链接: https://codeforces.com/contest/1220/problem/E 题意: Alex decided to go on a touristic trip over th ...
- MySQL索引-B+树(看完你就明白了)
索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据.索引最形象的比喻就是图书的目录了.注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这 ...
- C++之带有默认参数值的构造函数
在一个类中 ,如果程序员没有写,任何一个构造函数,则编译器将为该类提供一个默认的构造函数,如果程序员对类的构造函数进行了重载,则编译器将不提供默构造函数,这里需要手动书写一个无参的构造函数, 无参的构 ...
- 字符串匹配问题x
qwq这个是栈的w 不是树w qwq我承认我发题很杂啦 字符串匹配问题x [问题描述] 字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配 ...
- Zabbix 数据库迁移
背景:ZABBIX的环境是LNMP,MySQL的架构是M-M主备模式,单台服务器SSD硬盘800G.监控主机日渐增多,空间不足,迁移到同样架构下的SAS盘2T空间. 架构:A 192.168.0.10 ...
- hive-server 启动失败问题小记
Unable to instantiate using constructor(MetricRegistry, HiveC onf) for reporter org.apache.hadoop.hi ...
- 使用create-react-app创建项目(二)——引入ant方法(一)
扩展项目(需要创建git默认文件) 具体步骤如下: a.git init b.git add . c.git commit -m "..." n ...
- CPU分支预测器
两篇结合就ok啦 1.https://www.jianshu.com/p/be389eeba589 2.https://blog.csdn.net/edonlii/article/details/87 ...