Bash簡明教程--變數,bash簡明教程變數

來源:互聯網
上載者:User

Bash簡明教程--變數,bash簡明教程變數

1. 前言

  Bash是一門流行在*nix系統下的指令碼語言。作為一門指令碼語言,變數是一門語言的基本要素,在這篇教程中,我們將學習Bash中的變數是怎麼表示的,以及變數相關的一些文法規則。

2. Bash中的變數

  Bash作為一門程式設計語言,它通過變數來表示資料。Bash的變數在概念是和我們平時接觸的其他程式設計語言類似,都是以字元表示的一些列名字標籤,通過引用這些名字標籤來使用變數所表示的值。通過一個變數,我們可以引用一塊記憶體地區的值。一個變數的賦值操作,拋開細節,我,我們可以簡單的理解為是為這個名字標籤和記憶體地區建立一個關聯。

  在Bash中,變數是無類型的。這個和其他比如C,Java和C++等強型別語言有很大的不同。

代碼:

var=100echo "$var"=> 100var="var is not a number"echo "$var"=> var is not a number
3. 變數替換

  Bash中,一個變數可以理解為是這個變數的值的預留位置。引用這個變數的值得過程,可以簡單的理解為是變數替換的過程。在Bash中,變數替換是通過操作符"$"完成的。

代碼:

var=100echo var=> varecho $var=> 100

看上面的例子,我們可以看到,通過"$"符號引用一個變數的時候,會獲得這個變數的值。而單獨使用這個變數名字的時候,在echo命令中,只是獲得了這個變數名稱的字面值而已,所以"var" 和 "$var"是不同的。

  一般情況下,使用"$"符+變數名稱來引用變數的值,但是在一些特殊的語句和命令中,我們可以省略"$"符號,只是用變數名稱來引用變數的值。比如:

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

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

  通過雙引號(")包裹的字串中,如果包含了變數替換,那麼變數替換是有效。而包含在單引號(')的字串中的變數替換,是無效的,變數名稱將被作為一般字元串。

代碼:

var=100echo "$var"=> 100echo '$var'=> $var

  在雙引號中的變數進行變數替換的時候,如果變數名稱和其他字元中間沒有分隔字元(一般是空格),那麼變數替換就會出現歧義,所以需要另一種方式的變數替換文法,使用${var}來進行變數替換。

代碼:

var=100echo "$varis100"=># 輸出是空的,因為上面的變數替換的是"varis100"這個變數的值,而這個變數在上下文中沒有定義,所以是空的echo "${var}is100"=> 100is100

  在使用echo命令輸出一個變數的時候,需要注意一個問題。一個變數是否被包含在一個雙引號中,輸出的結果是不同的。

代碼:

var="A B  C    D"echo $var=> A B C Decho "$var"=> A B  C   D
4. 變數賦值

  在Bash中,變數賦值的方式有很多種,通過等號(=)來進行變數的賦值是最常見的一種方式。 在使用等號進行賦值的時候,等號兩邊是不能包含空格的

代碼:

var=100echo "var = $var"=> var = 100

除了使用等號來進行變數賦值以外,還可以使用"let"命令來進行賦值。

代碼:

let var=100echo "var = $var"=> var = 100

在for迴圈語句中,也可以使用"for ... in ..."的方式給變數賦值。

for var in 10 20 30do    echo $vardone=> 10   20   30

使用read命令,可以從使用者輸入中獲得值並給變數賦值。

代碼:

echo -n "Enter \"var\""read varecho "The value of var is $var"<= 100=> The value of var is 100
5. 總結

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.