shell腳本介紹、腳本結構和執行、date命令用法、腳本中的變量

20.1 Shell腳本介紹

shell是什麼shell

  • shell是一種腳本語言
  • 能夠使用邏輯判斷、循環等語法
  • 能夠自定義函數
  • shell是系統命令的集合
  • shell腳本能夠實現自動化運維,能大大增長咱們的運維效率

20.2 shell腳本結構和執行

  • 開頭須要加#!/bin/bash
  • 以#開頭的做爲解釋說明
  • 腳本的名字以.sh結尾,用於區分這是一個shell腳本
  • 執行方法有兩種

實例01:bash

[root@qingyun-01 shell]# cat 1.sh 
#!/bin/bash
echo "123"
  1. chmod +x 1.sh;./1.sh
[root@qingyun-01 shell]# chmod a+x 1.sh
[root@qingyun-01 shell]# ./1.sh 
123
  1. bash 1.sh
[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腳本中的變量

  • 當腳本中使用某個字符串,屢次頻繁而且字符串長度很長時,就應該使用變量代替ide

  • 使用條件語句時,常使用變量 if [ $a -gt 1];then ...;fi函數

  • 引用某個命令的結果時,用變量替代 n=wc -l 1.txtcode

  • 寫和用戶交互的腳本時,變量也是必不可少的 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]
相關文章
相關標籤/搜索