1. 程式人生 > >Linux命令(49)——export命令(builtin)

Linux命令(49)——export命令(builtin)

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輸出結果如下:

[[email protected] ~]./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命令新增、刪除環境變數