參考:https://www.cnblogs.com/zhuandshao/p/7193564.html
特殊變量($0、$1、$2、 $?、 $# 、$@、 $*)
shell編程中有一些特殊的變量可以使用。這些變量在腳本中可以作爲全局變量來使用。
名稱 | 說明 |
$0 | 腳本名稱 |
$1-9 | 腳本執行時的參數1到參數9 |
$? | 腳本的返回值 |
$# | 腳本執行時,輸入的參數的個數 |
$@ | 輸入的參數的具體內容(將輸入的參數作爲一個多個對象,即是所有參數的一個列表) |
$* | 輸入的參數的具體內容(將輸入的參數作爲一個單詞) |
$@與$*的區別:
$@與$*都可以使用一個變量來來表示所有的參數內容,但這兩個變量之間有一些不同之處。
$@:將輸入的參數作爲一個列表對象
$*:將輸入的參數作爲一個單詞
單引號:
可以說是所見即所得:即將單引號內的內容原樣輸出,或者描述爲單引號裏面看見的是什麼就會輸出什麼。
雙引號:
把雙引號內的內容輸出出來;如果內容中有命令,變量等,會先把變量,命令解析出結果,然後在輸出最終內容來。
雙引號內命令或變量的寫法爲`命令或變量`或$(命令或變量)。
無引號:
把內容輸出出來,可能不會講含有空格的字符串視爲一個整體輸出;
如果內容中有命令、變量等,會先把變量、命令解析結果,然後在輸出最終內容來;
如果字符串中帶有空格等特殊字符,則不能完整的輸出,需要改加雙引號,一般連續的字符串,數字,路徑等可以用,不過最好用雙引號替代之