2013-11-03 99 views
1

我有以下bash腳本:Linux環境變量設置消失

#!/bin/bash 
export PYCACHED_HOST='localhost' 
export PYCACHED_PORT=8001 
echo "PyCached environment variables set to: PYCACHED_HOST=`echo $PYCACHED_HOST`, PYCACHED_PORT=`echo $PYCACHED_PORT`" 

當我運行它,下面的輸出打印:

PyCached environment variables set to: PYCACHED_HOST=localhost, PYCACHED_PORT=8001 

,當我運行相同的回聲再次行:

echo "PyCached environment variables set to: PYCACHED_HOST=`echo $PYCACHED_HOST`, PYCACHED_PORT=`echo $PYCACHED_PORT`" 

我得到:

PyCached environment variables set to: PYCACHED_HOST=, PYCACHED_PORT= 

我知道env vars是爲腳本上下文設置的,但是我能做些什麼才能在腳本執行結束後使它們可用呢?

回答

4

what can I do to make them available after the script execution is over?

爲運行腳本;

source ./script.sh 

OR

. ./script.sh 

這將運行在當前的shell腳本,而無需創建一個新的進程,因此ENV變量將在當前shell後可用腳本結束。

+0

這是解決方案,完美的作品! PS在'source'和額外的點語法之間是否有語義上的區別?它完全一樣嗎? – ducin

+2

是的,他們兩個實際上是相同的。點是捷徑語法。 – anubhava

1

如果您現在需要env變量,您可以將它們設置爲.bashrc文件。它是一個隱藏文件,通常在主目錄中找到。它在打開任何shell提示符之前執行。