2015-07-01 61 views
0

我有兩個shell腳本:bash的環境變量沒有得到出口

第一:1.sh,其內容如下:

export PROP="my val" 

二:2.sh,其內容如下:

./1.sh 
echo $PROP 

兩者都有執行權限。當我運行2.sh時,期待環境變量PROP設置並通過1.sh導出,echo $PROP語句在2.sh中可見,並且會打印出來。但輸出爲空,表示PROP對2.sh不可見。這裏有什麼問題?

回答

1

嘗試在當前進程採購的腳本:

. 1.sh 
echo $PROP 

然後你就可以放下export乾脆:

PROP="my val" 

的問題是,你在一個新的shell進程中運行1.sh,所以當過程結束時,它對環境所做的任何更改都會丟失。具體而言,export使變量可用於當前進程的子項,因此在這種情況下它不會影響2.sh(父進程)。