12.1脚本

12.1脚本

  • shell脚本并不能作为正式的变成语言,因为它是在linux的shell中运行的,所以称为shell脚本。shell脚本就是一些命令的集合。把所有的操作都记录到一个文档中,然后去调用文档中的命令,这样一部操作就可以完成。这个文档就是shell脚本,只是这个shell脚本有它的特殊的格式。

  • shell脚本能帮助我们很方便地管理服务器,因为我们可以指定一个任务计划,定时去执行某个shell脚本以满足需求。

凡是自定义的脚本都放到/user/local/sbin/目录下。这样做的目的是:一来可以更好地管理文档;二来是以后接管你的管理员都知道自定义脚本放在哪里,方便维护。

12.1.1 shell脚本的创建和执行

编写第一个shell脚本

[root@localhost ~]# cd /usr/local/sbin
[root@localhost sbin]# vim first.sh
#! /bin/bash

##This is my first shell script
## Writen by Aming 2017-02-23.

date
s is my first shell script
## Writen by Aming 2017-02-23.

date
echo "Hello world"

shell脚本通常都以.sh为后缀名。这并不是说不加.sh的脚本就不能执行,只是大家的一个习惯而已。本例中,脚本文件first.sh的第1行要以#! /bin/bash开头,表示该文件使用的是bash语法。如果不设置改行,你的shell脚本也能执行,但是不符合规范。#表示注释,后面跟一些该脚本的相关注释内容。因为随着工作时间的逐渐过渡,写的shell脚本也会越来越多,如果有一天你回头查看自己写过的某个脚本,很有可能忘记改脚本是用来干什么的以及什么时候写的。所以写上注释是有必要的。别的管理员也可以查看你的脚本。

执行这个脚本,如下所示:

[root@localhost sbin]# sh first.sh
2018年 07月 08日 星期日 20:03:59 CST
Hello world

shell另外的一种执行方法,如下所示:

[root@localhost sbin]# ./first.sh
-bash: ./first.sh: 权限不够
[root@localhost sbin]# chmod +x first.sh
[root@localhost sbin]# ./first.sh
2018年 07月 08日 星期日 20:21:46 CST
Hello world

使用该方法运行shell脚本的前提是脚本本身有执行权限,所以需要给脚本加一个x权限。另外,使用sh命令执行一个shell脚本时,可以加-x选项查看这个脚本执行过程,这样有利于我们调试这个脚本。如下所示:

[root@localhost sbin]# sh -x first.sh
+ date
2018年 07月 08日 星期日 20:25:35 CST
+ echo 'Hello world'
Hello world

date命令

用法:

  • date +%Y:表示意思为数字格式打印年份。

  • date +%y:表示意思为数字格式打印年份。

  • date +%m:表示月份。

  • date +%d:表示日期。

  • date +%H:表示小时。

  • date +%M:表示分钟。

  • date +%S:秒。

  • date +%w:表示星期。结果显示0则表示周日。

列举几个例子date命令的用法,示例如下:

[root@localhost sbin]# date +"%Y-%m-%d %H:%M:%S"

2018-07-08 20:36:12

前一天的日期,如下所示:

[root@localhost sbin]# date -d "-1 day" +%d
07

一小时前,如下所示:

[root@localhost sbin]# date -d "-1 hour" +%H
19

一分钟前,如下所示:

[root@localhost sbin]# date -d "-1 min" +%M
39

12.2 shell脚本中的变量

  • 在shell脚本中使用变量回事我们的脚本更加专业,更像是一门语言。

  • 定义变量的格式为:“变量名=变量的值”。

  • 在脚本中引用变量时需要加上符号$,这跟前面介绍的在shell中自定义变量是一致的。

猜你喜欢

转载自blog.51cto.com/13107353/2138884