Vim与Shell脚本(下)

笑着哭i 提交于 2020-02-28 09:20:12

 

 

 

流程控制语句

 

3.while while条件循环语句    (条件)

    while条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,完全不同于for循环语句中有目标、有范围的使用场景

    该脚本使用$RANDOM变量来调取出一个随机的数值(范围为0~32767),将这个随机数对1000进行取余操作,并使用expr命令取得其结果,再用这个数值与用户通过read命令输入的数值进行比较判断

#!/bin/bash

#thin is a test.sh

PRICE=$(expr $RANDOM % 1000)

TIMES=0

echo "商品实际价格为0-999之间,猜猜看是多少?"

while true

do

read -p "请输入您猜测的价格数目:" INT

let TIMES++

if [ $INT -eq $PRICE ] ; then

echo "恭喜您答对了,实际价格是 $PRICE"

echo "您总共猜测了 $TIMES "

exit 0

elif [ $INT -gt $PRICE ] ; then

echo "太高了!"

else

echo "太低了!"

fi

done

 

 

 

4.case条件测试语句

  case语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;而如果数据不在所列出的范围内,则会去执行星号(*)中所定义的默认命令

将字符赋值给KEY去判断类型

#!/bin/bash
read -p "
请输入一个字符,并按Enter键确认:" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "
您输入的是 字母。"
;;
[0-9])
echo "
您输入的是 数字。"
;;
*)
echo "
您输入的是 空格、功能键或其他控制字符。"
esac

 

 

计划任务服务程序

 

    在指定的时间段自动启用或停止某些服务或命令,从而实现运维的自动化,设置服务器的计划任务服务,把周期性、规律性的工作交给系统自动完成

 

   计划任务分为一次性计划任务与长期性计划任务:

一次性计划任务:今晚11点30分开启网站服务

长期性计划任务:每周一的凌晨3点25分把/home/wwwroot目录打包备份为backup.tar.gz

 

一次性计划任务:(单次有效)

使用at

 at 23:30   ------任务执行时间
at > reboot    -------任务命令内容

at > 此处请同时按下Ctrl+d来结束编写计划任务  -----任务编辑结束

 

at   时间

at -l  列出已有的计划任务

at -1 -c   显示编号1的任务编码工作内容

at -r 删除任务

 

长期计划性任务:(永久有效)

 crond 服务名称

crontab 配置工具

如果我们希望Linux系统能够周期性地、有规律地执行某些具体的任务,那么Linux系统中默认启用的crond服务简直再适合不过了。创建、编辑计划任务的命令为“crontab -e”,查看当前计划任务的命令“crontab -l”,删除某条计划任务的命令为“crontab -r”。另外,如果您是以管理员的身份登录的系统,还可以在crontab命令中加上-u参数来编辑他人的计划任务。

在正式部署计划任务前,熟悉“分、时、日、月、星期 命令”。这是使用crond服务设置任务的参数格式,

需要注意的是,如果有些字段没有设置,则需要使用星号(*)占位,如下图 

 

                                  使用crond设置任务的参数字段说明

字段

说明

分钟

取值为0~59的整数

小时

取值为0~23的任意整数

日期

取值为1~31的任意整数

月份

取值为1~12的任意整数

星期

取值为0~7的任意整数,其中0与7均为星期日

命令

要执行的命令或程序脚本

 

在计划任务的命令里 命令要以绝对路径的形式添加

五个时间占位符  * * * * *

crontab -u  跟上用户名查看其他用户的计划任务

crontab -e    编辑创建自己的计划任务

whereis reboot   查看reboot的绝对路径

可以加注释标明任务名称

在xxx时刻重启服务器(24小时制

30 1  ***   /usr/bin/reboot           每天凌晨1点30分重启

30 1  5 **   /usr/bin/reboot        每月5号的凌晨1点30分重启

30 1  5 3 *   /usr/bin/reboot       每年的3月5号的凌晨1点30分重启

30 1 * 3 2   /usr/bin/reboot        每年的星期二凌晨 1点30分重启

30 1 * * 2   /usr/bin/reboot         每个星期二凌晨 1点30分重启

30 1 1-3 * *   /usr/bin/reboot      每个月1-3号的凌晨 1点30分重启

30 */2 * * *     /usr/bin/reboot      每两个半小时重启一次

    • Vim编辑器
    • Shell脚本
    • 流程控制语句
    • 计划任务服务程序
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!