学到了_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!
今天又是学到的一天,祝你快乐!

posted @ 2023-06-06 17:36  Dean_001  阅读(7)  评论(0编辑  收藏  举报