shell脚本介绍、脚本结构和执行、date命令用法、脚本中的变量

前端之家收集整理的这篇文章主要介绍了shell脚本介绍、脚本结构和执行、date命令用法、脚本中的变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

20.1 Shell脚本介绍

shell是什么

  • shell是一种脚本语言
  • 可以使用逻辑判断、循环等语法
  • 可以自定义函数
  • shell是系统命令的集合
  • shell脚本可以实现自动化运维,能大大增加我们的运维效率

20.2 shell脚本结构和执行

  • 开头需要加#!/bin/bash
  • 以#开头的作为解释说明
  • 脚本的名字以.sh结尾,用于区分这是一个shell脚本
  • 执行方法有两种

实例01:

[root@qingyun-01 shell]# cat 1.sh 
#!/bin/bash
echo "123"
  1. chmod +x 1.sh;./1.sh
  2. @H_404_39@
    [root@qingyun-01 shell]# chmod a+x 1.sh
    [root@qingyun-01 shell]# ./1.sh 
    123
    1. bash 1.sh
    2. @H_404_39@
      [root@qingyun-01 shell]# bash 1.sh 
      123
      • 查看脚本执行过程 bash -x 1.sh
      [root@qingyun-01 shell]# sh -x 1.sh 
      + echo 123
      123
      • 查看脚本是否语法错误bash -n 1.sh
      [root@qingyun-01 shell]# sh -n 1.sh 
      #无错误
      #只用于检测shell的无法错误

      20.3 date命令用法

      显示当前时间:

      [root@qingyun-01 ~]# date
      2018年 02月 05日 星期一 17:55:33 CST
      
      #变更为英文
      [root@qingyun-01 ~]# LANG=en
      [root@qingyun-01 ~]# date
      Mon Feb  5 17:57:24 CST 2018
      • date +%Y-%m-%d,date +%y-%m-%d 年月日
      ;年
      [root@qingyun-01 ~]# date +%Y
      2018
      ;取后两位
      [root@qingyun-01 ~]# date +%y
      18
      
      ;月份
      [root@qingyun-01 ~]# date +%m
      02
      
      ;号(日)
      [root@qingyun-01 ~]# date +%d
      05
      
      ;日期
      [root@qingyun-01 ~]# date +%D
      02/05/18
      
      ;即
      [root@qingyun-01 ~]# date +%Y-%m-%d
      2018-02-05
      ;或
      [root@qingyun-01 ~]# date +%F
      2018-02-05
      
      [root@qingyun-01 ~]# date +%y-%m-%d
      18-02-05
      • date +%H:%M:%S = date +%T 时间
      ;时
      [root@qingyun-01 ~]# date +%H
      18
      ;分
      [root@qingyun-01 ~]# date +%M
      07
      ;秒
      [root@qingyun-01 ~]# date +%S
      11
      
      ;即
      [root@qingyun-01 ~]# date +%H:%M:%S
      18:06:43
      ;或
      [root@qingyun-01 ~]# date +%T
      18:08:48
      • date +%s 时间戳
      ;时间戳
      [root@qingyun-01 ~]# date +%s
      1517825370
      • date -d @1517825370
      #根据时间戳转换成日期
      [root@qingyun-01 ~]# date -d @1517825370
      Mon Feb  5 18:09:30 CST 2018
      • date -d "+1day" 一天后
      [root@qingyun-01 ~]# date -d "-1 day"
      Sun Feb  4 18:19:25 CST 2018
      [root@qingyun-01 ~]# date -d "-1 month" +%F
      2018-01-05
      • date -d "-1 years" 一天前
      [root@qingyun-01 ~]# date -d "-1 years" +%F
      2017-02-05
      • date -d "-1 month" 一月前
      [root@qingyun-01 ~]# date -d "-1 month" +%F
      2018-01-05
      • date -d "-1 min" 一分钟前
      [root@qingyun-01 ~]# date -d "-1 min" +%F
      2018-02-05
      • date +%w,星期 date +%W 第几个星期
      [root@qingyun-01 ~]# date +%w
      1
      ;是今年的多少周(星期)
      [root@qingyun-01 ~]# date +%W
      06
      [root@qingyun-01 ~]# cal
          February 2018   
      Su Mo Tu We Th Fr Sa
                   1  2  3
       4  5  6  7  8  9 10
      11 12 13 14 15 16 17
      18 19 20 21 22 23 24
      25 26 27 28

      20.4 shell脚本中的变量

      • 当脚本中使用某个字符串,多次频繁并且字符串长度很长时,就应该使用变量代替

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

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

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

      • 内置变量 $0,$1,$2... $0表示脚本本身,$1 第一个参数,$2第二个... $#: 表示参数个数
      • 数学运算a=1;b=2;c=$($a+$b)或者$[$a+$b]

猜你在找的Bash相关文章