shell變量:shell變量的定義、刪除變量、只讀變量、變量類型。shell
shell支持自定義變量bash
定義變量時,變量名不加美圓符號($),如:spa
ValueName="value"
注意,變量名和等號之間不能有空格,同時,變量名的命名須遵循以下規則:code
定義及使用變量舉例: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時,會同時存在三種變量:
局部變量在腳本或命令中定義,僅在當前shell實例中有效,其餘shell啓動的程序不能訪問局部變量。
全部的程序,包括shell啓動的程序,都能訪問環境變量,有些程序須要環境變量來保證其正常運行。必要的時候shell腳本也能夠定義環境變量。
shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行