1、大部分的Linux系統默認配置bash。對比sh,bash擴展了一些命令和參數,並且保留對sh的一些兼容。除了bash、sh還有csh(語法類似C語言)、tcsh(csh升級版)、ash(適合低內存環境)
2、腳本開頭 #!/bin/sh , #!必須有,后面跟上的是shell的路徑
3、變量賦值和取值
(1) Bash shell 在默認情況下不會區分變量類型,即使你將整數和小數賦值給變量,它們也會被視為字符串,這一點和大部分的編程語言不同。
variable=value 注意:賦值號左右不能留空格
(2) $后面跟上變量表示讀取變量里面的值,特殊情況可以加上{}表示變量的邊界
輸出結果:
(3) 單引號和雙引號的區別:以單引號' '包圍變量的值時,單引號里面是什么就輸出什么,即使內容中有變量也會把它們原樣輸出,雙引號內的變量才會取值輸出
輸出結果:
4、Linux命令結果賦值:用反引號(Esc下面、tab上面的點)表示
輸出結果:
5、運算符:
(1) expr :后面跟上需要運算的算法,需要用反引號,每個參數間要有空格
(2) $(( )): 算法要有空格
(3) let: 算法不能有空格
輸出結果:
6、數組定義
(1) 或者
(2) 取值:
7、If...else...if: 和常用編程語言的區別在於結束是用fi表示,每個條件后面要加上then,
(1) 方括號([ ])內的參數之間必須有空格
(2) 多條件判斷
8、 case ... esac :類似其他語言的switch ... case,case工作方式如上所示。取值后面必須為關鍵字 in,每一模式必須以右括號結束。取值可以為變量或常數。匹配發現取值符合某一模式后,其間所有命令開始執行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最后。
9、While 循環
10、Shell 函數:可以將可能重復用到的命令封裝成一個函數,函數可以帶返回值,函數內用return返回,函數外用$?接收返回值。Shell 函數返回值只能是整數,一般用來表示函數執行成功與否,0表示成功,其他值表示失敗。如果 return 其他數據,比如一個字符串,往往會得到錯誤提示:“numeric argument required”。
如果有需要返回其他類型的值,可以在外部定義一個變量,來接受結果。
11、參數:shell腳本可以帶參數,在腳本中,通過 $n 的形式來獲取參數的值,例如,$1表示第一個參數,$2表示第二個參數...
12、“#”井號表示注釋
13、特殊字符
特殊變量 |
說明 |
$# |
傳遞給函數的參數個數。 |
$* |
顯示所有傳遞給函數的參數 |
$? |
函數的返回值。 |
$0 |
當前腳本的文件名 |
$$ |
當前Shell進程ID |
-eq |
檢測兩個數是否相等,相等返回 true。 |
-ne |
檢測兩個數是否相等,不相等返回 true。 |
-gt |
檢測左邊的數是否大於右邊的,如果是,則返回 true。 |
-lt |
檢測左邊的數是否小於右邊的,如果是,則返回 true |
-ge |
檢測左邊的數是否大等於右邊的,如果是,則返回 true。 |
-le |
檢測左邊的數是否小於等於右邊的,如果是,則返回 true |