Bash簡明教程--變量

1. 前言

  Bash是一門流行在*nix系統下的腳本語言。做爲一門腳本語言,變量是一門語言的基本要素,在這篇教程中,咱們將學習Bash中的變量是怎麼表示的,以及變量相關的一些語法規則。編程

2. Bash中的變量

  Bash做爲一門編程語言,它經過變量來表示數據。Bash的變量在概念是和咱們平時接觸的其餘編程語言相似,都是以字符表示的一些列名字標籤,經過引用這些名字標籤來使用變量所表示的值。經過一個變量,咱們能夠引用一塊內存區域的值。一個變量的賦值操做,拋開細節,我,咱們能夠簡單的理解爲是爲這個名字標籤和內存區域建立一個關聯。編程語言

  在Bash中,變量是無類型的。這個和其餘好比C,Java和C++等強類型語言有很大的不一樣。學習

代碼:spa

var=100
echo "$var"
=> 100

var="var is not a number"
echo "$var"
=> var is not a number

3. 變量替換

  Bash中,一個變量能夠理解爲是這個變量的值的佔位符。引用這個變量的值得過程,能夠簡單的理解爲是變量替換的過程。在Bash中,變量替換是經過操做符"$"完成的。code

代碼:blog

var=100

echo var
=> var

echo $var
=> 100

看上面的例子,咱們能夠看到,經過"$"符號引用一個變量的時候,會得到這個變量的值。而單獨使用這個變量名字的時候,在echo命令中,只是得到了這個變量名稱的字面值而已,因此"var" 和 "$var"是不一樣的。教程

  通常狀況下,使用"$"符+變量名稱來引用變量的值,可是在一些特殊的語句和命令中,咱們能夠省略"$"符號,只是用變量名稱來引用變量的值。好比:內存

  • 對變量進行賦值時候
  • 聲明變量時候
  • 在"(())"語句表示的算術計算語句中的時候
  • 使用unset命令的時候

後面在學習到這些內容相關的主題的時候,咱們會看到上面提到的這些不使用"$"符號的狀況。字符串

  經過雙引號(")包裹的字符串中,若是包含了變量替換,那麼變量替換是有效的。而包含在單引號(')的字符串中的變量替換,是無效的,變量名稱將被做爲普通字符串。for循環

代碼:

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

4. 變量賦值

  在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

5. 總結

  咱們已經學習了Bash中有關變量的一些概念和變量的賦值,引用等語法規則。學會了怎麼在一個Bash腳本中建立一個變量,給變量賦值以及經過echo命令輸出到終端。

相關文章
相關標籤/搜索