Bash是一門流行在*nix系統下的腳本語言。作為一門腳本語言,變量是一門語言的基本要素,在這篇教程中,我們將學習Bash中的變量是怎麼表示的,以及變量相關的一些語法規則。
Bash作為一門編程語言,它通過變量來表示數據。Bash的變量在概念是和我們平時接觸的其他編程語言類似,都是以字符表示的一些列名字標簽,通過引用這些名字標簽來使用變量所表示的值。通過一個變量,我們可以引用一塊內存區域的值。一個變量的賦值操作,拋開細節,我,我們可以簡單的理解為是為這個名字標簽和內存區域創建一個關聯。
在Bash中,變量是無類型的。這個和其他比如C,Java和C++等強類型語言有很大的不同。
代碼:
var=100 echo "$var" => 100 var="var is not a number" echo "$var" => var is not a number
Bash中,一個變量可以理解為是這個變量的值的占位符。引用這個變量的值得過程,可以簡單的理解為是變量替換的過程。在Bash中,變量替換是通過操作符"$"完成的。
代碼:
var=100 echo var => var echo $var => 100
看上面的例子,我們可以看到,通過"$"符號引用一個變量的時候,會獲得這個變量的值。而單獨使用這個變量名字的時候,在echo命令中,只是獲得了這個變量名稱的字面值而已,所以"var" 和 "$var"是不同的。
一般情況下,使用"$"符+變量名稱來引用變量的值,但是在一些特殊的語句和命令中,我們可以省略"$"符號,只是用變量名稱來引用變量的值。比如:
後面在學習到這些內容相關的主題的時候,我們會看到上面提到的這些不使用"$"符號的情況。
通過雙引號(")包裹的字符串中,如果包含了變量替換,那麼變量替換是有效的。而包含在單引號(')的字符串中的變量替換,是無效的,變量名稱將被作為普通字符串。
代碼:
var=100 echo "$var" => 100 echo '$var' => $var
在雙引號中的變量進行變量替換的時候,如果變量名稱和其他字符中間沒有分隔符(一般是空格),那麼變量替換就會出現歧義,所以需要另一種方式的變量替換語法,使用${var}來進行變量替換。
代碼:
var=100 echo "$varis100" => # 輸出是空的,因為上面的變量替換的是"varis100"這個變量的值,而這個變量在上下文中沒有定義,所以是空的 echo "${var}is100" => 100is100
在使用echo命令輸出一個變量的時候,需要注意一個問題。一個變量是否被包含在一個雙引號中,輸出的結果是不同的。
代碼:
var="A B C D" echo $var => A B C D echo "$var" => A B C D
在Bash中,變量賦值的方式有很多種,通過等號(=)來進行變量的賦值是最常見的一種方式。 在使用等號進行賦值的時候,等號兩邊是不能包含空格的。
代碼:
var=100 echo "var = $var" => var = 100
除了使用等號來進行變量賦值以外,還可以使用"let"命令來進行賦值。
代碼:
let var=100 echo "var = $var" => var = 100
在for循環語句中,也可以使用"for ... in ..."的方式給變量賦值。
for var in 10 20 30 do echo $var done => 10 20 30
使用read命令,可以從用戶輸入中獲得值並給變量賦值。
代碼:
echo -n "Enter \"var\"" read var echo "The value of var is $var" <= 100 => The value of var is 100
我們已經學習了Bash中有關變量的一些概念和變量的賦值,引用等語法規則。學會了怎麼在一個Bash腳本中創建一個變量,給變量賦值以及通過echo命令輸出到終端。
http://xxxxxx/Linuxjc/1161509.html TechArticle