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