20.1 Shell脚本介绍

1. shell是一种脚本语言  aming_linux  blog.lishiming.net

2. 可以使用逻辑判断、循环等语法

3. 可以自定义函数

4. shell是系统命令的集合

5. shell脚本可以实现自动化运维,能大大增加我们的运维效率

20.2 Shell脚本结构和执行

1. 开头(首行)需要加 #!/bin/bash

2. #开头行作解释说明

3. 脚本的名字.sh结尾,用于区分这是一个shell脚本

4. 执行.sh脚本方法有两种

1) 先给.sh脚本添加x权限

[root@hao-01 ~]# chmod +x 1.sh

.sh脚本的绝对路径回车

[root@hao-01 ~]# /root/1.sh

2) bash(bash=sh)执行.sh脚本 :

[root@hao-01 ~]# bash 1.sh      

5. 查看脚本执行过程

[root@hao-01 ~]# sh -x 1.sh

6. 检测脚本是否有语法错误

[root@hao-01 ~]# sh -n 1.sh

20.3 date命令用法

1. 查看当前时间

[root@hao-01 ~]# date

2.

年:

[root@hao-01 ~]#date +%Y

[root@hao-01 ~]#date +%y

月:

[root@hao-01 ~]#date +%m

分钟:

[root@hao-01 ~]#date +%M

日期:

[root@hao-01 ~]# date +%d

月日年:

[root@hao-01 ~]# date +%D

年月日

[root@hao-01 ~]# date +%Y%m%d

年-月-日:

[root@hao-01 ~]# date +%F

小时:

[root@hao-01 ~]# date +%H

秒:

[root@hao-01 ~]# date +%S

时间戳(距离1970年1月1日零点零分到现在有多少秒):

[root@hao-01 ~]# date +%s 

时:分钟:秒:

[root@hao-01 ~]# date +%H:%M:%S

[root@hao-01 ~]# date +%T

周(星期几):

[root@hao-01 ~]# date +%w

今年第几周(第几个星期):

[root@hao-01 ~]# date +%W

显示日历:

[root@hao-01 ~]# cal

前一天(昨天):

[root@hao-01 ~]# date -d "-1 day" +%F

上个月:

[root@hao-01 ~]# date -d "-1 month" +%F

前一年(去年):

[root@hao-01 ~]# date -d "-1 years" +%F

前一小时:

[root@hao-01 ~]# date -d "-1 hour" +%F

前一分钟:

[root@hao-01 ~]# date -d "-1 min" +%F

时间戳(当前时间到1970年1月1日零点零分有多少秒):

[root@hao-01 ~]# date +%s

通过时间戳,翻译成日期时间

[root@hao-01 ~]# date -d @1505206911

通过日期时间,转换成时间戳

[root@hao-01 ~]# date +%s -d "2017-09-12 17:01:51"

20.4 Shell脚本中的变量

1. 当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替

2. 使用条件语句时,常使用变量    if [ $a -gt 1 ]; then ... ; fi

3. 引用某个命令的结果时,用变量替代   n=`wc -l 1.txt`

4. 写和用户交互的脚本时,变量也是必不可少的  read -p "Input a number: " n; echo $n   如果没写这个n,可以直接使用$REPLY

5. 内置变量 $0, $1, $2…    $0表示脚本本身,$1 第一个参数,$2 第二个 ....       $#表示参数个数

6. 数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]