学到了_shell脚本编写
背景提要
由于需要在linux command line界面频繁的启动和关闭某个服务,愚蠢的我一直使用人力进行枯燥的工作
经高人指点——“为什么不写个脚本跑呢”,顿茅塞顿开,再次鄙视下愚蠢的自己
开始干活
所有可以在commad line界面敲的命令都可以集合到一个 .sh脚本中进行,并可以通过条件判断和循环,使之完成枯燥的工作
上文件:
#!/bin/bash
#设置循环数 默认值为1 可通过脚本进行入参设置
loop_count=$1
#循环 注意空格格式
for ((i = 1; i <= $loop_count; i++)); do
echo "execute stop command"
# 定义命令 stop service command替换为具体需要执行的命令
stopResult=$(stop service command)
# $stopResult用于获取执行命令后的控制台输出信息
# 注意 使用双[]来模糊匹配字符串
if [[ $stopResult = *"Successfully"* ]]; then
echo "stop service successful"
else
echo "stop failed"
fi
echo "execute start service"
startResult=$(start service command)
if [[ $startResult = *"Successfully"* ]]; then
echo "start service successful"
else
echo "start failed"
fi
# 睡眠 10s
sleep 10s
done
具体使用,比如我们为这份文件起名 startStopService.sh
当需要使用时,需要指定循环数(不指定时默认为1), 命令行输入:./startStopService.sh 15
意为启动和关闭该服务15次
注意事项
脚本格式问题:
之前是直接使用notepad++ 去编写脚本的, 导致脚本放入服务器后总是在报格式的错误,有些错误的提示信息还牛头不对马嘴,推荐大家使用手头的编辑器去写,我这边使用的是idea,会推荐你自动安装插件,安装完成后格式化代码,还是蛮有效果的
文件报错Permission denied:
是因为即便是你以root的权限亲手创建的文件,可能文件的权限也仅仅是读写,而无可执行权限,所以需要手动的进行赋权 chmod 777 startStopService.sh
done!
今天又是学到的一天,祝你快乐!