1. 程式人生 > >什麼是shell、shell指令碼結構和執行、date命令、shell指令碼中變數

什麼是shell、shell指令碼結構和執行、date命令、shell指令碼中變數

開發十年,就只剩下這套架構體系了! >>>   

  • 什麼是shell

shell是一種指令碼語言(解釋性語言)  #語言可分為編譯和解釋,編譯就是把你寫的程式先編譯一下,然後才能執行。解釋就是直接執行,不需要編譯。

可以使用邏輯判斷、迴圈等語法,可以自定義函式,shell是系統命令的集合,shell指令碼可以實現自動化運維

  • shell指令碼結構和執行

開頭需要加#!/bin/bash

以#開頭的行作為解釋說明

指令碼的名字以.sh結尾,用於區分這是一個shell指令碼 #linux中不以後綴區分檔案型別,但還是要以規範字尾命名

執行指令碼的方法有兩種 

                         chmod +x X.sh或者./X.sh

                         bash X.sh

檢視指令碼執行過程 :bash -x X.sh

檢視指令碼是否語法錯誤:bash -n X.sh

  • date命令

date +%Y-%m-%d, date +%y-%m-%d #顯示當前年月日(大Y帶20小y不帶20) #大Y顯示具體的年,小Y顯示省略的年
date +%H:%M:%S = date +%T 時間 #分時秒
date +%s 時間戳(時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數。)
date -d @1504620492(顯示該時間戳的具體日期)
date -d "+1day" 一天後
date -d "-1 day" 一天前
date -d "-1 month" 一月前
date -d "-1 min" 一分鐘前
date +%w(顯示當前是周幾), date +%W(顯示當前是今年的第幾周) 

shell指令碼中的變數

當指令碼中使用某個字串較頻繁並且字串長度很長時就應該使用變數代替

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

引用某個命令的結果時,用變數替代 n = wc -1 1.txt

寫和使用者互動的指令碼時,變數也是必不可少的

 read -p "input a number:"n;echo $n如果沒寫這個n,可以直接使用$REPLY

內建變數$0, $1,$2....$0表示指令碼本身,$1第一個引數,$2第二個..........$#表示引數個數

數學運算a=1;b=2;c=$(($a+$b))或者c=$[$a+$b]