shell 腳本介紹
- shell是一種腳本語言 aming_linux blog.lishiming.net
- 可以使用邏輯判斷、循環等語法
- 可以自定義函數
- shell是系統命令的集合
- shell腳本可以實現自動化運維,能大大增加我們的運維效率
公衆號:aming_linux
博客: blog.lishiming.net
Shell腳本結構和執行
開頭(首行)需要加: #!/bin/bash
這裏是指文件使用的是bash語法,通過/bin/bash解釋器來執行的。
以#開頭的行作爲解釋說明:
腳本的名字以.sh結尾,用於區分這是一個shell腳本
執行.sh腳本方法有兩種:
1先給.sh腳本添加x權限:
chmod +x 1.sh
.sh腳本的絕對路徑回車:
/root/1.sh
2bash(bash=sh)執行.sh腳本:
bash 1.sh
查看腳本執行過程:
sh -x 1.sh
檢測shell腳本的語法錯誤:
sh -n 1.sh
date命令用法
date命令在·shell·腳本里的大部分是對日誌進行文件名的更改,和對一些文件做日期上的區分。
查看當前時間
[root@shuai-01 ~]# date
2018年 02月 25日 星期日 14:51:35 CST
[root@shuai-01 ~]# LANG=en
[root@shuai-01 ~]# date
Sun Feb 25 14:52:25 CST 2018
date +%Y : 打印四位數字的年份
[root@shuai-01 ~]# date +%Y
2018date +%y : 打印兩位數字的年份
[root@shuai-01 ~]# date +%y
18date +%m : 打印月份
[root@shuai-01 ~]# date +%m
02date +%d : 表示日期
[root@shuai-01 ~]# date +%d
25date +%H : 表示小時
[root@shuai-01 ~]# date +%H
14date +%M : 表示分鐘
[root@shuai-01 ~]# date +%M
58date +%S : 表示秒
[root@shuai-01 ~]# date +%S
35date +%w : 表示星期,0表示週日
[root@shuai-01 ~]# date +%w
0表示年月日:
[root@shuai-01 ~]# date +%Y%m%d
20180225[root@shuai-01 ~]# date +%F
2018-02-25
表示時間:
[root@shuai-01 ~]# date +%T
18:44:10
顯示日曆:
[root@shuai-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
date 標記昨天的日期:
[root@shuai-01 ~]# date -d "-1 day"
Sat Feb 24 18:47:16 CST 2018
[root@shuai-01 ~]# date -d "-1 day" +%F
2018-02-24
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]