0
我有類似的東西在一個shell腳本恢復以前的值或取消設置環境變量
cd /some/folder1
savedCFLAGS=${CFLAGS-}
export CFLAGS="-fexceptions ${CFLAGS-}"
./configure --some-option -what-ever
make
export CFLAGS=${savedCFLAGS}
cd /some/folder2
./configure --some-option -what-ever
make
這工作或多或少正確的,但有一個嚴重的缺陷。
如果CFLAGS被清除的以前,第一塊後,它將被設置而空。
有時候,這是一個問題,因爲某些配置腳本使用默認值變量,只有當他們實際上是沒有設置 - 如果變量只是空的默認值將不會被使用。
我還要說明,我在腳本中有多次這樣的構造,有多個不同的變量(這是一個用於構建完整的基於GCC的工具鏈的腳本)。
什麼是有變量或者恢復原來的值(如果它實際上是預先設定的)或取消(如果它是在我的修改未設置),最簡單的方法?
我可以設置savedCFLAGS
一些特殊的記號,如果是取消設置,然後測試savedCFLAGS
是否等於令牌的值。
然而,也許有更簡單的事情?
簡單和輝煌!謝謝! –
確保任何命令正在運行,不過,預計不會改變當前的環境。 (也就是說,確保你沒有在'(...)'中找到任何shell腳本。 – chepner