构成+执行

  • 开头需要加#! /bin/bash

  • 以#开头的行作为解释说明

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

  • 执行方法有两种

    chmod +x 1.sh; ./1.sh

    bash 1.sh

  • 查看脚本执行过程 

    bash -x 1.sh

  • 查看脚本是否语法错误 

    bash -n 1.sh


date命令语法

# date      //单纯的显示当前日期
2017年 09月 12日 星期二 21:26:09 CST

[root@Plinux ~]# date +%Y   // 单纯的四位数  “年”
2017

[root@Plinux ~]# date +%y   // 二位数    “年”
17

[root@Plinux ~]# date +%M   // Minute “分钟”
32

[root@Plinux ~]# date +%m   // Month    “月份”
09

[root@Plinux ~]# date +%S   // Second   “秒”
21

[root@Plinux ~]# date +%H   // Hour     “小时”
21

[root@Plinux ~]# date +%d   // date     “日期”
12

[root@Plinux ~]# date +%D   //  安装如何英文格式输出    “年月日”
09/12/17

[root@Plinux ~]# date +%Y%m%d       // 四位数   “年月日”
20170912

[root@Plinux ~]# date +%y%m%d       // 二位数   “年月日”
170912

[root@Plinux ~]# date +%F           // 特殊格式 “年月日”
2017-09-12

[root@Plinux ~]# date +%T           // 特殊格式 “时分秒”
21:40:22

[root@Plinux ~]# date +%H%M%S       // 组合式   “时分秒”
214500

[root@Plinux ~]# date +%H:%M:%S     // 自定义   “时分秒”
21:45:07

[root@Plinux ~]# date +%w           // week     “周几”
2

[root@Plinux ~]# date +%W           // 第几周   
37

[root@Plinux ~]# date -d "-1 day" +%F       // 昨天
2017-09-11

[root@Plinux ~]# date -d "-1 month" +%F     // 上个月
2017-08-12

[root@Plinux ~]# date -d "-1 years" +%F     // 上年
2016-09-12

[root@Plinux ~]# date -d "-1 hour" +%T      // 过去的一小时
21:00:33

[root@Plinux ~]# date +%s           // 从1970年到现在已经过去多少秒了   “时间戳”    
1505225506

换算某个时间点的时间戳:(2018年8月8号8时8分8秒离1970年过去了多少秒)
[root@Plinux ~]# date +%s -d "2018-08-08 08:08:08"
1533686888

根据时间戳 得到一个具体的时间
[root@Plinux ~]# date -d @1533686888
2018年 08月 08日 星期三 08:08:08 CST


shell中的变量

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

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

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

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

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