shell是一種腳本語言, shell是系統命令的集合
一、可使用邏輯判斷、循環等語法;
跟C語言有點像,但有本質的區別。
二、能夠自定義函數;
定義函數是爲了減小咱們的重複代碼。
三、它能夠實現自動化運維,能夠批量同時執行,能大大增長咱們的運維效率,;
要想學好寫好shell就要不斷的去練習。shell
1、在開頭須要加bash
#!/bin/bash
指定用bash解釋器來執行,以#開頭行進行解釋說明。腳本名以.sh結尾,用於區分這是一個shell腳本。
2、執行shell腳本方法有兩種:運維
[root@riven ~]# chmod a+x 1.sh #給腳本執行權限 [root@riven ~]# ./1.sh #執行權限後用./直接執行 [root@riven ~]# bash 1.sh #直接用bash執行 12233...
[root@riven ~]# bash -n 1.sh # -n 查看腳本是否是語法錯誤 [root@riven ~]# bash -x 1.sh #-x 查看腳本的執行過程 + echo 12233... 12233... + echo 111 [root@riven ~]#
3、data命令的用法
1、直接打data命令它會顯示系統的日期和時間。
2、data命令在shell裏面很是有用,它能夠用來標記時間。
標記方法:ide
[root@riven ~]# date +%Y #年 2018 [root@riven ~]# date +%m #月 07 [root@riven ~]# date +%d #日 13 [root@riven ~]# date +%M #分鐘 58 [root@riven ~]# date +%y #兩位數的年 18 [root@riven ~]# date +%D #帶/的年月日 07/14/18 [root@riven ~]# date +%Y%m%d 20180714 [root@riven ~]# date +%F #帶橫線的年月日 2018-07-14 [root@riven ~]# date +%H #小時 00 [root@riven ~]# date +%S #秒 38 [root@riven ~]# date +%s #時間戳,距離1970年0點0分0秒過去多少鈔 [root@riven ~]# date +%T #當前時間 00:04:24 [root@riven ~]# date +%H%M%S #時分秒 000554 [root@riven ~]# date +%H:%M:%S 00:06:02 [root@riven ~]# 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 31 [root@riven ~]# date -d "-1 day" +%F #前一天 2018-07-13 [root@riven ~]# date -d "+1 day" +%F #後一天 2018-07-15 [root@riven ~]# date -d "+1 year" +%F #後一年 2019-07-14 [root@riven ~]# date -d "-1 year" +%F #前年 2017-07-14 [root@riven ~]# date -d "-1 month" +%F #上個月 2018-06-14 [root@riven ~]# date -d "+1 month" +%F #下個月 2018-08-14 [root@riven ~]# date -d "+1 hour" +%T #後一個小時 01:16:58 [root@riven ~]# date -d "-1 hour" +%T #前一個小時 23:17:04 [root@riven ~]# date -d @16032303211 #時間戳轉成具體時間 2478年 01月 16日 星期日 09:33:31 CST [root@riven ~]# date +%s -d "2018-09-09 00:00:00"#具體時間轉換成時間戳 1536422400 [root@riven ~]#
1、當腳本中使用某個字符串較頻繁而且字符串長度很長時就應該使用變量代替。
2、使用條件語句時,常使用的變量:
if [$a -gt 1];then ...;fi
三、引用某個命令的結果時,用變量代替:
n='wc -| 1.txt'
四、寫和用戶交互的腳本時,變量也是必不可少的
read -p "Input a number: " n; echo $n #若是沒寫這個n,能夠直接使用$REPLY
五、內置變量 $0, $1, $2… $0表示腳本自己,$1 第一個參數,$2 第二個 …. $#表示參數個數
6、數學運算a=1;b=2; c=$(($a+$b))或者$[$a+$b]函數