Shell變量

shell變量:shell變量的定義、刪除變量、只讀變量、變量類型。shell

 

shell支持自定義變量bash

定義變量

定義變量時,變量名不加美圓符號($),如:spa

ValueName="value"

注意,變量名和等號之間不能有空格,同時,變量名的命名須遵循以下規則:code

  • 首個字符必須爲字母(a-z,A-Z)
  • 中間不能有空格,能夠使用下劃線(_)
  • 不能使用標點符號
  • 不能使用bash裏的關鍵字(能夠使用help命令查看保留關鍵字)

 

定義及使用變量舉例:blog

#!/bin/bash
echo "HelloWord!"   #第一行輸出
value="Hello"       #定義value的變量爲Hello
echo "$value"       #輸出value的值      使用一個定義過的變量,只要在變量名前面加美圓符號($)便可如:"$value"

變量名外面的花括號是可選的,加不加都行,加花括號是爲了幫助解釋器識別變量的邊界,好比下面這種狀況class

echo "hi,${value}What your name"

若是不給value變量加花括號,寫成echo "hi,$valueWhat your name",解釋器就會把$valueWhat當成一個變量(其值爲空),代碼執行結果就不是咱們指望的樣子了,這邊推薦加上花括號養成好習慣。變量

執行:程序

[root@lvs-2 bash]# ./guojg.sh 
HelloWord!
Hello

從新定義變量

已定義的變量,能夠被從新定義,如:#!/bin/bash命名

echo "HelloWord!" value="hello" #第一次定義 echo "${value}"  #輸出 value="nihao"    #重複定義
echo "${value}" #輸出

執行腳本

[root@lvs-2 bash]# ./guojg.sh 
HelloWord!
hello             #第一次定義輸出結果
nihao        #第二次定義輸出結果

只讀變量

使用 readonly 命令能夠將變量定義爲只讀變量,只讀變量的值不能被改變。

下面的例子嘗試更改只讀變量,結果報錯:

#!/bin/bash
value="hello"
readonly value       #定義爲只讀變量
value="nihao"        #改變,變量值

執行

[root@lvs-2 bash]# ./guojg.sh 
./guojg.sh: line 4: value: readonly variable    #報錯

刪除變量

使用 unset 命令能夠刪除變量。

變量被刪除後不能再次使用;unset 命令不能刪除只讀變量。

#!/bin/bash
value="hello"
unset  value
echo "$value"

上面腳本執行值爲空

變量類型

運行shell時,會同時存在三種變量:

1) 局部變量

局部變量在腳本或命令中定義,僅在當前shell實例中有效,其餘shell啓動的程序不能訪問局部變量。

2) 環境變量

全部的程序,包括shell啓動的程序,都能訪問環境變量,有些程序須要環境變量來保證其正常運行。必要的時候shell腳本也能夠定義環境變量。

3) shell變量

shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行

相關文章
相關標籤/搜索