我想知道在.bashrc中設置變量時是否需要使用「導出」。BASH:在.bashrc中設置變量時需要「導出」嗎?
在我的測試編輯的.bashrc有
foo=bar
和
export foo=bar
之間沒有什麼區別。在這兩種情況下,登錄後 「回聲$ foo的」 產出 「欄」。
我正在使用Debian Squeeze,如果這很重要。
謝謝你們提前。
我想知道在.bashrc中設置變量時是否需要使用「導出」。BASH:在.bashrc中設置變量時需要「導出」嗎?
在我的測試編輯的.bashrc有
foo=bar
和
export foo=bar
之間沒有什麼區別。在這兩種情況下,登錄後 「回聲$ foo的」 產出 「欄」。
我正在使用Debian Squeeze,如果這很重要。
謝謝你們提前。
嘗試創建一個訪問foo
變量的shell腳本。
如果foo
是export
'ed,它將在shell腳本中可見,否則它不會。
超級用戶has this covered。
簡短回答:export
確保在子進程中設置環境變量。如果您不導出,則只能在相同的流程/交互式會話中使用。
我創建了一個包含「echo $ foo」的測試腳本。在登錄後運行腳本的兩種情況下,輸出都是「bar」。我瘋了嗎?任何人都可以重現嗎? – casper 2011-06-09 18:28:23
這是可取的,因爲導出的變量傳遞給子進程(從該shell啓動的程序)。如果沒有export命令,那些變量只適用於shell本身,而不適用於從shell啓動的進程
我創建了一個包含「'echo $ foo'」的測試腳本。在登錄後運行腳本的兩種情況下,輸出都是「bar」。我瘋了嗎?任何人都可以重現嗎? – casper 2011-06-09 19:07:54
你如何運行腳本? '。/ script'或'。 script'? – 2011-06-09 19:13:08
我通過''。/ script''運行腳本 – casper 2011-06-09 19:27:00