第十二章:shell脚本
一、什么是shell脚本
把所有操作都记录到一个文档中,然后去调用文档中的命令,这个文档就是shell脚本。Shell脚本能帮助我们很方便地管理服务器,因为我们可以指定一个任务计划,定时去执行某个shell脚本以满足需求。在正式编写shell脚本之前,建议自定义的脚本都放在/usr/local/sbin/目录下:一是可以更好地管理文档;二是以后接管你工作的管理员都知道自定义脚本放在那里,方便维护。
1.shell脚本的创建和执行
编写第一个shell脚本:
[root@zl_cloud ~]# cd /usr/local/sbin/
[root@zl_cloud sbin]# cat first.sh
#! /bin/bash //表示该文件用的是bash语法
## This is my first shell script //该脚本是用来干嘛的
## Writen by ZLING 2020-03-25 //作者、时间
Date //内容
echo "Hello world!"
Shell脚本通常以.sh为后缀名。内容前最好写一个该脚本的相关注释内容,以及作者、创建日期或者版本等, 方便后续回顾查看该脚本。
下面执行一下这个脚本:
①sh命令:
- -x:查看这个脚本的执行过程。
[root@zl_cloud sbin]# sh first.sh
2020年 03月 25日 星期三 17:37:14 CST
Hello world!
[root@zl_cloud sbin]#
[root@zl_cloud sbin]# sh -x first.sh
+ date
2020年 03月 25日 星期三 17:38:08 CST
+ echo 'Hello world!'
Hello world!
[root@zl_cloud sbin]#
②./ 这个格式。(使用该方法运行shell脚本的前提是有脚本本身的执行权限):
[root@zl_cloud sbin]# ./first.sh
-bash: ./first.sh: 权限不够
[root@zl_cloud sbin]# chmod +x first.sh
[root@zl_cloud sbin]# ./first.sh
2020年 03月 25日 星期三 17:39:19 CST
Hello world!
[root@zl_cloud sbin]#
2.命令date
- date +%Y:表示以四位数字格式打印年份;
- date +%y:表示以两位数字格式打印年份;
- date +%m:表示月份;
- date +%d:表示日期;
- date +%H:表示小时;
- date +%M:表示分钟;
- date +%S:表示秒;
- date +%w:表示星期。结果显示0则表示周日。
目前:
[root@zl_cloud sbin]# date +"%Y-%m-%d %H:%M:%S"
2020-03-25 17:48:41
[root@zl_cloud sbin]#
之前:
[root@zl_cloud sbin]# date -d "-1 day" +%H
17
[root@zl_cloud sbin]# date -d "-1 hour" +%H
16
[root@zl_cloud sbin]# date -d "-1 min" +%H
17
[root@zl_cloud sbin]#
二、shell脚本中的变量
如果脚本中多次出现某一个命