一、shell腳本介紹
Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。
- shell是一種腳本語言;
- 可以使用邏輯判斷、循環等語法;
- 可自定義函數;
- shell是系統命令的集合;
- shell腳本可以實現自動化運維,能大大增加我們的運維效率;
二、shell腳本結構和執行
1、結構
- 開頭需要“#!/bin/bash“;
- 腳本內容中以#開頭的行作爲解釋說明;
- 編寫腳本時備註:作者、時間、功能等信息,方便之後查看;
- 腳本的名字用“.sh”結尾,用於區分這是一個shell腳本;
2、執行方式
1、作爲可執行程序:給腳本添加執行權限
chmod a+x test.sh
,然後直接執行該腳本./test.sh
;
2,作爲解釋器參數:使用sh執行# sh test.sh
;
3、參數
-x:
sh -x test.sh
查看腳本執行過程
-n:sh -n test.sh
檢測語法錯誤
三、date命令用法
date命令用於顯示或設置系統時間與日期。
命令選項:
-d :顯示字符串指定的日期與時間(字符串前後必須加上雙引號)
-s:根據字符串來設置時間與日期(字符串前後必須加雙引號)
命令實例:
[root@zlinux-01 ~]# date //顯示當前日期時間
2018年 04月 17日 星期二 19:54:50 CST
[root@zlinux-01 ~]# cal //當前日曆
四月 2018
日 一 二 三 四 五 六
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
29 30
[root@zlinux-01 ~]# date +%Y //顯示年份
2018
[root@zlinux-01 ~]# date +%y //年份簡寫
18
[root@zlinux-01 ~]# date "+%Y-%m-%d %H:%M:%S %w" //年月日,時分秒,星期
2018-04-17 19:58:30 2
[root@zlinux-01 ~]# date +%F //完整日期的另一種顯示
2018-04-17
[root@zlinux-01 ~]# date +%W //一年中的第幾周
16
[root@zlinux-01 ~]# date +%T //當前時間
20:01:19
[root@zlinux-01 ~]# date "+%F %T" //日期時間
2018-04-17 20:01:45
[root@zlinux-01 ~]# date +%s //時間戳(顯示從1970年1月1日00:00:00到目前經歷的秒數)
1523966522
[root@zlinux-01 ~]# date -d @1523966522 //時間戳轉化成具體日期
2018年 04月 17日 星期二 20:02:02 CST
[root@zlinux-01 ~]# date +%s -d "2018-04-17 20:04:59" //日期轉化爲時間戳
1523966699
[root@zlinux-01 ~]# date -d "-1 year" +%Y //前一年
2017
[root@zlinux-01 ~]# date -d "-1 month" +%m //前一月
03
[root@zlinux-01 ~]# date -d "-1 day" +%d //前一天
16
[root@zlinux-01 ~]# date -d "2 year 2month 2 day" +%Y-%m-%d //當前日期的下2年的下2月下2天
2020-06-19
四、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]