1.命令簡介
export命令爲Shell內建命令,用於設置或顯示環境變量,環境變量包含變量與函數。
在Shell中執行程序時,Shell會提供一組環境變量。export可新增、刪除或修改環境變量,供後續被執行的程序使用。export的作用效果僅限於當前登陸。
2.命令格式
export [-fn] [name[=word]] ... export -p
3.命令選項
-f:表示[name]中爲函數名稱。 -n:刪除指定的變量。變量實際上並未刪除,只是不會輸出到後續指令的執行環境中。 -p:列出所有的Shell環境變量。
4.常用示例
(1)定義環境變量並賦值。
export MYNEWV=8
(2)修改指明Shell命令搜索路徑的環境變量PATH。
export PATH=$PATH:/usr/local/mysql/bin
查看是否已經設置好,可以使用命令export -p
命令來查看,也可以使用echo命令打印變量內容。
export -p | grep PATH #或者 echo $PATH
(3)export用於Shell腳本。 用戶登錄到Linux系統後,系統將啓動一個用戶shell。在這個shell中,可以使用shell命令或聲明變量,也可以創建並運行shell腳本程序。系統將創建一個子shell進程。此時,系統中將有兩個shell進程,一個是登錄時系統啓動的shell進程,另一個是系統爲運行腳本程序創建的shell進程。當一個腳本程序運行完畢,它的腳本shell進程將終止,可以返回到執行該腳本之前的shell。從這種意義上來 說,用戶可以有許多shell進程,每個shell進程都是由其父shell進程派生的。
在子shell中定義的變量只在該子shell內有效。如果在一個shell腳本程序中定義了一個變量,當該腳本程序運行時,這個定義的變量只是該腳本程序內的一個局部變量,其他的shell不能引用它,要使某個變量的值可以在其他shell中被改變,可以使用export命令對已定義的變量進行輸出。 export命令將使系統在創建每一個新的shell時定義這個變量的一個拷貝。這個過程稱之爲變量輸出。
例如腳本test1.sh中調用腳本test2.sh,test2.sh中使用test1.sh定義的變量shareVar。 test1.sh定義如下:
#!/bin/sh shareVar=666 export shareVar ./test2.sh
test2.sh定義如下:
#!/bin/sh echo "in $0" echo $shareVar
執行test1.sh輸出結果如下:
[user_00@TENCENT64 ~]./test1.sh in ./test2.sh 666
5.Linux設置環境變量的三種實現方法
(1)1.直接使用export命令
export PATH=$PATH:/usr/local/mysql/bin
注意:直接使用export設置的變量都是臨時變量,也就是說退出當前的Shell爲該變量定義的值便不會生效了。我們可以使用如下兩種方式使變更永久有效。
(2)修改/etc/profile,加入如下行,將對所有用戶生效。
export PATH=$PATH:/usr/local/mysql/bin
注意:修改完這個文件必須要使用如下命令執行配置文件的內容,在不用重啓系統的情況下使修改的內容生效。
source /etc/profile #或 . /etc/profile
(3)修改~/.bashrc文件,加入如下行,只對當前用戶生效。
export PATH=$PATH:/usr/local/mysql/bin
修改這個文件之後同樣也需要使用source或者是.命令使配置文件生效。
參考文獻
[1]man export [2]菜鳥教程.Linux export命令 [3]linux下export命令添加、刪除環境變量