自动化架构-shell自动化编程(三)
今日内容:
一、Shell函数
1.1 函数基本使用
函数有三种定义方式
使用方式二定义函数
测试
1.2 函数传参
函数传参与shell脚本类似,也是用$
格式
位置参数 |
shell脚本中 |
shell函数中 |
$n |
脚本的第n个参数 |
函数的第n个参数 |
$0 |
脚本的名字 |
脚本的名字 |
$# |
脚本参数的个数 |
函数参数的个数 |
$@ / $* |
脚本所有参数 |
函数所有的参数 |
使用案例:
测试
1.3 案例-服务管理脚本
目标:
- 书写服务管理脚本
- /server/scripts/xxxx {start|stop|restart|status}
- sersync服务是二进制包,解压安装
1.3.1 需求分析
需求:
- 书写data_sync.sh脚本,用于管理sersync服务
- sh data_sync.sh start|stop|restart|status
分析
- 如果用户输入的是start,则运行sersync启动的命令。
- 如果用户输入的是stop,则运行关闭sersync的命令。
- 如果用户输入的是status,则显示sersync是否运行中,pid。
- 如果用户输入的是restart,则运行stop的命令,然后运行start的命令。
- 如果用户输入的是其他的内容,则提示输入错误,提示格式
提前准备sersync
1.3.2 实现
测试
1.3.2 脚本改进
目前脚本只能做固定的启动、关闭、重启等操作,没有做状态判断,实际上应该是图中这样,对服务当前状态有所判断,然后再进行下一步操作。