獲取另一個腳本中定義的指定變量的值

例如有腳本test.sh,其中定義了兩個變量:

bag=1
log=2

 

有另外一個腳本test2.sh,在其中想獲取test.sh的log變量的值,並且test2.sh本身有一個bag變量,不希望這個變量的值被影響到。

bag="known"
log="unknown"

 

如果直接使用source,會使bag變量被覆蓋:

bag="known"
log="unknown"

source test.sh
echo $bag
echo $log

運行結果爲:

1
2

 

正確的一種方法是:

bag="known"
log="unknown"

log=`source test.sh;echo $log`
echo $bag
echo $log

運行結果:

known
2

 

reference:

https://unix.stackexchange.com/questions/266627/bash-source-without-polluting-own-namespace-get-variables-from-other-scripts

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章