linux中$符號有三種用法。
用法一:
顯示腳本參數($0、$?、$*、$@、$#、$$、$!)(本質上屬于變量替換)。
$0:就是該bash文件名,個位數的,可直接使用數字,但兩位數以上,則必須使用 {} 符號來括住,如${10}。
$?:是上一指令的返回值,成功是0,不成功是1。一般來說,UNIX(linux) 系統的進程以執行系統調用exit() 來結束的。這個回傳值就是status值?;貍鹘o父進程,用來檢查子進程的執行狀態。一般指令程序倘若執行成功,其回傳值為 0;失敗為 1。
$*:所有腳本參數的內容:就是調用調用本bash shell的參數。?
用法二:
獲取變量與環境變量的值。
如:path=2,則echo $path 或者echo${path}顯示的就是path的值。
在linux及unix的sh中,以$開頭的字符串表示的是sh中定義的變量,這些變量可以是系統自動增加的,也可以是用戶自己定義的$PATH表示的是系統的命令搜索路徑,和windows的%path%是一樣的$HOME則表示是用戶的主目錄。
用法三:
shell中$(( ))、$( )、“與${ }的區別。
說明:
${ }這種形式其實與用法一和二是一樣的,屬于變量替換的范疇,只不過在變量替換中可以加上大括號,也可以不加大括號。
簡而言之:$(( ))屬于執行計算公式,等價于$[ ],$( )和` `屬于命令替換,${ }屬于變量替換。
1、$( )與``(反引號):返回括號中命令的結果
在bash中,$( )與` `(反引號)都是用來作命令替換的,執行括號或者反引號中的命令。
命令替換與變量替換差不多,都是用來重組命令行的,先完成引號里的命令行,然后將其結果替換出來,再重組成新的命令行。
2、${ }變量替換
一般情況下,$var與${var}是沒有區別的,但是用${ }會比較精確的界定變量名稱的范圍。
推薦教程:linux教程