运维工程师shell脚本_自动化运维:(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

如何写一个简单的shell

如何写一个简单的shell 看完后我就一直想写一个简单的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 ...

用shell写一个简单DHCP配置脚本

轩轩写的这个小脚本,主要是可以进行对dhcp服务的安装.简单配置.开启.关闭/查看状态等情况 使用呢非常简单,按照步骤进行准确的设置就可以啦 #!/bin/bashyum -y install dhc ...

随机推荐

javascript 之 prototype继承机制

理解Javascript语言的继承机制 javascript没有"子类"和"父类"的概念,也没有"类"(class)和"实例&qu ...

C++学习笔记16:Linux系统编程基础1

参数列表 Linux命令行规范 短参数:以单横开头,后跟单一字符,例如:ls -h 长参数:以双横开头,后跟字符串,例如:ls --help 程序访问参数列表的方法: 主函数的参数argc和argv ...

CF 335A(Banana-贪心-priority_queue是大根堆)

A. Banana time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

SGU 142.Keyword

时间限制:0.5s 空间限制:16M 题意 给出一个仅由'a',‘b’组成的字符串S,长度小于500 000,求一个由‘a’,‘b’组成的不是S子串的字符串T. 输出T的长度和T. Sample In ...

SQL中on条件与where条件的区别(转载)

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1. on条件是在生成临时表时使用的条 ...

windows服务器下IIS7 安装URL Rewrite(URL重写)模块

URL Rewrite Module是一个基于规则的URL重写引擎,用于在URL被Web服务器处理之前改变请求的URL.对于动态Web应用程序,它可以为用户和seo/seo.html" ta ...

NYOJ15|括号匹配(二)|区间DP|Elena

括号匹配(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:6   描述 给你一个字符串,里面只包含"(",")","[&qu ...

mysql utf8mb4

遇到的问题 有一个项目需要存储 emoji 表情.另外极少数中文在存储的时候也遇到 utf8 编码格式的数据库在储存时报错. Rails creating schema_migrations - My ...

List(JDK1.7)(2)

LinkedList List接口和Deque接口的一种双向链表实现.非同步的. 快速失败机制.ConcurrentModificationException 结点结构 插入结点 删除结点 add() ...

洛谷【P4551】最长异或路径

浅谈\(Trie\):https://www.cnblogs.com/AKMer/p/10444829.html 题目传送门:https://www.luogu.org/problemnew/show ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值