shell命令之 使用Linux環境變數

2022-07-26 10:51:09 字數 1433 閱讀 6858

所有的環境變數名均使用大寫字母,這是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 $

three

要顯示整個陣列變數,可用星號作為萬用字元放在索引值的位置。

$ echo $

one two three four five

甚至能用unset命令刪除陣列中的某個值,但是要小心,這可能會有點複雜。看下面的例子。

$ unset mytest[2]

$$ echo $

one two four five

$$ echo $

$ echo $

four

$這個例子用unset命令刪除在索引值為2的位置上的值。顯示整個陣列時,看起來像是索引

裡面已經沒這個索引了。但當專門顯示索引值為2的位置上的值時,就能看到這個位置是空的。

最後,可以在unset命令後跟上陣列名來刪除整個陣列。

$ unset mytest

$$ echo $

$有時陣列變數會讓事情很麻煩,所以在shell指令碼程式設計時並不常用。對其他shell而言,陣列變

量的可移植性並不好,如果需要在不同的shell環境下從事大量的指令碼編寫工作,這會帶來很多不

便。有些bash系統環境變數使用了陣列(比如bash_versinfo),但總體上不會太頻繁用到。

Linux之常用Shell命令

shell是乙個命令處理器,是乙個讀入並解釋你輸入的指令的c語言程式。可以說shell是使用者和linux之間的橋梁,通過shell命令,我們才能和linux對話。接下來將分別從 格式 功能 例子 來介紹linux檔案系統中常用的shell命令 ls命令 格式 ls 選項 檔案 功能 列出目錄內容 ...

Linux 之基本 shell 命令

檔案管理命令 ls list 顯示目錄內容 ls 選項 檔案或目錄路徑 a all 列出目錄中的所有項,包括以 開始的項 l list 以列表形式顯示檔案 r recursive 遞迴顯示目錄的內容 d directory 僅列出目錄本身的資訊 pwd print working directory...

Linux之shell基礎命令

用法 diff options files directorys輸出資訊 num1,num2 a c d num3,num4 常用引數 patch 原檔案 布丁檔案引數 cut d f 5 第五列 cut d f 3,5 3和5列 cut d f 3 5 3到5列 cut d f 5 第五列以後 c...