shell - linux 下export 命令有什么用
巴扎黑
巴扎黑 2017-04-17 11:29:04
0
2
715

/etc/profile 中有PATH变量, PATH=$PATH:/usr/local/php-5.5/binexport PATH=$PATH:/usr/local/php-5.5/bin 有什么区别?

========
source命令是在当前的shell中执行shell脚本,而不是在子shell当中,是吗?

巴扎黑
巴扎黑

全部回覆(2)
Ty80

首先,export 是 POSIX 相容 shell 的語法的一部分,而和 Linux 沒有必然的關係。它不是命令,而是一種修飾符(和 bash / zsh 中的 integer, local 之類的聲明類似)。

其次,export 的意義。 export var 表示,變數 var環境變數,將會被該 shell 的子程序繼承。預設情況下 POSIX 相容 shell 裡的變數都只是 shell 自己用的,不是環境變量,也不會被子進程繼承。 export var=xxx 是 bash 等支援的簡寫語法。 var=xxx cmd 是只為單一指令設定 var 環境變數用的語法。

最後,關於 PATH 環境變數。它是一個環境變量,意味著它已經被 exported 了。 PATHHOME 這些本身就是環境變數的變量,不需要明確地 export 的。所以沒有差別。

關於 source.,是的。它表示從指定檔案(路徑會使用 PATH 變數搜索,與可執行檔一樣)中讀取並執行腳本,和你手動在 shell 提示字元後輸入那些內容差不多。 source 這個術語也不僅僅用於 shell 中。

黄舟

在/etc/profile 有 PATH變量,PATH=$PATH:/usr/local/php-5.5/bin 與 export PATH=$PATH:/usr/local/php-5.5/bin 有什麼不同?

我認為沒什麼差別,其實你的 /etc/profile 會在系統啟動的時候會執行 source /etc/profile ,只不過不是你自己運作而已。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板