2013-07-03 51 views
-2

我有一個問題。輸出變量與export命令和.(點)命令有什麼區別?請解釋清楚在shell中導出變量

+2

你用'.'輸出是什麼意思?這源於一個文件,即在當前shell中執行它的內容,就像你自己輸入了一樣。 – Kevin

+0

export是這樣的:http://ss64.com/bash/export.html dot是這樣做的:http://ss64.com/bash/source.html –

回答

1

這是一個蘋果和橘子的問題。它們不是相同的功能。

export命令用來設置變量,所以你有兩個選擇:

variable=value 
export variable=value 

如果你想運行其他shell腳本,你有幾種選擇:

shellScriptName.sh (no prefix or qualifiers) 
/bin/sh shellScriptName 
. shellScriptName.sh 

變賦值就是這樣,設置一個變量。導出控制你剛纔設置的變量的可見範圍(特別是它是否被導出到子進程)。

至於shell腳本,前兩個基本相同,並在另一個進程中運行一個shell腳本。在這種情況下,任何設置/導出的變量都不會在調用shell中可見。當你使用。它會將shell腳本作爲當前shell腳本/進程中的內聯源(就像導入)一樣來源,因此子shell的變量賦值在當前shell中可見。

+0

'export'也使它在登錄shell中可見。因此,如果我產生了一個衍生出另一個「導出VAR = 3」shell的shell,那麼在這些shell終止後'echo $ VAR'將顯示'3'。 – lurker