轉自:http://blog.csdn.net/shenshendeai/article/details/49794699
export命令
功能說明:設定或顯示環境變數。
語 法:export [-fnp][變數名稱]=[變數設定值]
補充說明:在shell中執行程式時,shell會提供一組環境變數。 export可新增,修改或刪除環境變數,供後續執行的程式使用。
export的效力僅及於該此登陸操作。
參 數:
-f 代表[變數名稱]中為函式名稱。
-n 刪除指定的變數。變數實際上並未刪除,只是不會輸出到後續指令的執行環境中。
-p 列出所有的shell賦予程式的環境變數。
一個變數建立時,它不會自動地為在它之後建立的shell程式所知。而命令export可以向後面的shell傳遞變數的值。當一個shell指令碼呼叫並執行時,它不會自動得到原來指令碼(呼叫者)裡定義的變數的訪問權,除非這些變數已經被顯式地設定為可用。
export命令可以用於傳遞一個或多個變數的值到任何後繼指令碼。
在 linux 裡設定環境變數的三種實現方法(export PATH):
1.直接使用 export 命令 (我們以 mysql 服務舉例說明)
[root@liyao ~]# export PATH=$PATH:/usr/local/mysql/bin
檢視是否已經設定好,可以使用命令 export 命令來檢視,也可以直接$#變數名#來檢視
zhongweichaomatoMacBook-Pro:~ zhongweichao$ $PATH
-bash: :/Users/zhongweichao/.local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/zhongweichao/Develop/jboss-5.1.0.GA/bin
需要注意: 直接使用 export 設定的變數都是臨時變數,也就是說退出當前的 shell ,為該變數定義的值便不會生效了。如何能讓我們定義的變數永久生效呢?那就看我們的第二種定義的方式。
2. 修改 /etc/profile
[root@liyao ~]# vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin # 在配置檔案中加入此行配置
需要注意的是:修改完這個檔案必須要使用 以下命令在不用重啟系統的情況下使修改的內容生效。
[root@liyao ~]# source /etc/profile
或者是用 ‘.’:
[root@liyao ~]# . /etc/profile
檢視:
[root@liyao ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
# 配置已經生效
3. 修改 .bashrc 檔案是在當前使用者 shell 下生效
# vi /root/.bashrc?在裡面加入:
export PATH=$PATH:/usr/local/mysql/bin
修改這個檔案之後同樣也需要使用 source 或者是 . 使配置檔案生效。
再來使用 echo $PATH看下變數是否生效
[root@liyao ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
shell與export命令
使用者登入到Linux系統後,系統將啟動一個使用者shell。在這個shell中,可以使用shell命令或宣告變數,也可以建立並執行 shell指令碼程式。執行shell指令碼程式時,系統將建立一個子shell。此時,系統中將有兩個shell,一個是登入時系統啟動的shell,另一 個是系統為執行指令碼程式建立的shell。當一個指令碼程式執行完畢,它的指令碼shell將終止,可以返回到執行該指令碼之前的shell。從這種意義上來 說,使用者可以有許多 shell,每個shell都是由某個shell(稱為父shell)派生的。
在子 shell中定義的變數只在該子shell內有效。如果在一個shell指令碼程式中定義了一個變數,當該指令碼程式執行時,這個定義的變數只是該指令碼程式內 的一個區域性變數,其他的shell不能引用它,要使某個變數的值可以在其他shell中被改變,可以使用export命令對已定義的變數進行輸出。 export命令將使系統在建立每一個新的shell時定義這個變數的一個拷貝。這個過程稱之為變數輸出。