Shell 支持以下三種定義變量的方式:
variable=value variable='value' variable="value"
單引號和雙引號的區別
url="http://c.biancheng.net" website1='C語言中文網:${url}' website2="C語言中文網:${url}" echo $website1 echo $website2
運行結果:
C語言中文網:${url}
C語言中文網:http://c.biancheng.net
以單引號' '
包圍變量的值時,單引號里面是什么就輸出什么,即使內容中有變量和命令(命令需要反引起來)也會把它們原樣輸出。這種方式比較適合定義顯示純字符串的情況,即不希望解析變量、命令等的場景。
以雙引號" "
包圍變量的值時,輸出時會先解析里面的變量和命令,而不是把雙引號中的變量名和命令原樣輸出。這種方式比較適合字符串中附帶有變量和命令並且想將其解析后再輸出的變量定義。
只讀變量
使用 readonly 命令可以將變量定義為只讀變量,只讀變量的值不能被改變。
下面的例子嘗試更改只讀變量,結果報錯:
myUrl="http://c.biancheng.net/shell/" readonly myUrl myUrl="http://c.biancheng.net/shell/"
刪除變量
使用 unset 命令可以刪除變量。語法:
unset variable_name 變量被刪除后不能再次使用;unset 命令不能刪除只讀變量。