Linux

如何通過環境變數覆蓋局部變數

  • December 17, 2018

我有一個腳本在生產中執行,其中分配了一個值,但我想使用與此處不同的值。

我的腳本.sh

a=20181214

....

我在呼叫這個腳本之後export a=20181212然後呼叫這個腳本,因為我想20181212從這個腳本中使用。但每次它選擇的價值為20181214

如果您可以修改腳本,請修改它,使其顯示

a=${a:-20181214}

這將使它使用先前設置的值a,或者20181214如果$a為空或變數未設置。這是一個標準的參數擴展

然後你要麼使用

export a=20181212
./script.sh

或者

a=20181212 ./script.sh

後者避免在呼叫環境中設置變數,並且只為腳本環境設置它。

如果您無法修改腳本,那麼a無論您做了什麼,該腳本都會始終覆蓋您的值。在這種情況下,請聯繫維護腳本的人員並說明情況。如果情況變得更糟,請使用您可以修改的腳本副本,假設腳本不希望位於特定位置。

引用自:https://unix.stackexchange.com/questions/489407