Linux bash語法提要

$(command)|`command`: 執行相關的命令
$[{]variable[}]: 獲取變量的值
$((計算式)):算術運算,只能進行整型計算,如果有小數時,可以使用bc命令進行輔助
單引號('')不具備變量置換功能;雙引號("")具備變量置換功能

使用絕對或相對路徑,以及[bash|sh] script.sh執行時都會使用一個全新的bash環境來執行script腳本
而使用[source|. ] script.sh的方式執行時,會使用當前shell的環境來執行script腳本

[ -flag condition ] 是對test -flag condition命令的簡寫
作爲測試式時,[  ]內的兩端必須使用空格來分隔!其內部的變量,最好以雙引號進行引用;而其內部的常量,最好以單或雙引號進行引用。
可以進行文件類型及權限,整型,字符串等條件的測試,可以通過man test查看具體的flag

$? -- 上個命令執行返回值
$$ -- 當前進程的PID
$! -- 上一個後臺進程執行後的PID
$0, $1, $2, ..., $N -- $0表示腳本名,$1-$N表示參數
$# -- 從$1開始的參數個數
$@ -- "$1" "$2" ..."$N"
$* -- "$1 $2 ... $N"
shift N -- 改變$#及$@的值

&& -- AND
|| -- or

echo -- output
read -- input
declare -- 定義變量的類型
ctrl+s -- 暫停屏幕輸
ctrl+q -- 恢復屏幕輸出

變量內容的刪除、取代與替換
${變量名#[#]關鍵字} -- 若變量內容從頭部開始的數據符合”關鍵字“,#表示刪除最短數據;##表示刪除最長數據
${變量名%[%]關鍵字} -- 若變量內容從尾部開始的數據符合”關鍵字“,%表示刪除最短數據;%%表示刪除最長數據
${變量名/[/]舊關鍵字/新關鍵字} -- 若變量內容符合舊關鍵字,/表示第一個舊關鍵會被新關鍵字替換;//表示所有舊關鍵會被新關鍵字替換

${variable_name-"default value"}:判斷變量是否設定,未設定時取缺省值
${variable_name:-"default value"}:判斷變量是否設定或爲空,未設定或爲空時取缺省值

login shell:表示在tty中要求用戶輸入用戶名及密碼才能進入的shell
non-login shell:表示在圖形界面打開的終端或者在login shell中打開的其它shell
~/.bash_profile (read by login shell)
~/.bashrc (read by non-login shell)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章