shell命令之---使用Linux環境變量


設置局部用戶定義變量

  所有的環境變量名均使用大寫字母,這是bash shell的標准慣例。如果是你自己創建的局部變量或是shell腳本,請使用小寫字母。變量名區分大小寫。在涉及用戶定義的局部變量時堅持使用小寫字母,這能夠避免重新定義系統環境變量可能帶來的災難。

  變量名、等號和值之間沒有空格,這一點非常重要。如果在賦值表達式中加上了空格,bash shell就會把值當成一個單獨的命令:

    $ my_variable = "Hello World"

    -bash: my_variable: command not found

設置全局環境變量  

  可以使用export設置全局環境變量

刪除環境變量

  刪除環境變量可以使用unset

 

環境變量持久化

對全局環境變量來說(Linux系統中所有用戶都需要使用的變量),可能更傾向於將新的或修改過的變量設置放在/etc/profile文件中,但這可不是什么好主意。如果你升級了所用的發行版,這個文件也會跟着更新,那你所有定制過的變量設置可就都沒有了。
最好是在/etc/profile.d目錄中創建一個以.sh結尾的文件。把所有新的或修改過的全局環境變量設置放在這個文件中。

 

數組變量

環境變量有一個很酷的特性就是,它們可作為數組使用。數組是能夠存儲多個值的變量。這些值可以單獨引用,也可以作為整個數組來引用。
要給某個環境變量設置多個值,可以把值放在括號里,值與值之間用空格分隔。

$ mytest=(one two three four five)

沒什么特別的地方。如果你想把數組像普通的環境變量那樣顯示,你會失望的。
$ echo $mytest
one

只有數組的第一個值顯示出來了。要引用一個單獨的數組元素,就必須用代表它在數組中位置的數值索引值。索引值要用方括號括起來。
$ echo ${mytest[2]}
three

要顯示整個數組變量,可用星號作為通配符放在索引值的位置。
$ echo ${mytest[*]}
one two three four five

甚至能用unset命令刪除數組中的某個值,但是要小心,這可能會有點復雜。看下面的例子。
$ unset mytest[2]
$
$ echo ${mytest[*]}
one two four five
$
$ echo ${mytest[2]}
$ echo ${mytest[3]}
four
$
這個例子用unset命令刪除在索引值為2的位置上的值。顯示整個數組時,看起來像是索引
里面已經沒這個索引了。但當專門顯示索引值為2的位置上的值時,就能看到這個位置是空的。
最后,可以在unset命令后跟上數組名來刪除整個數組。
$ unset mytest
$
$ echo ${mytest[*]}
$
有時數組變量會讓事情很麻煩,所以在shell腳本編程時並不常用。對其他shell而言,數組變
量的可移植性並不好,如果需要在不同的shell環境下從事大量的腳本編寫工作,這會帶來很多不
便。有些bash系統環境變量使用了數組(比如BASH_VERSINFO),但總體上不會太頻繁用到。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM