Linux
如何通過環境變數覆蓋局部變數
我有一個腳本在生產中執行,其中分配了一個值,但我想使用與此處不同的值。
我的腳本.sh
a=20181214 ....
我在呼叫這個腳本之後
export a=20181212
然後呼叫這個腳本,因為我想20181212
從這個腳本中使用。但每次它選擇的價值為20181214
。
如果您可以修改腳本,請修改它,使其顯示
a=${a:-20181214}
這將使它使用先前設置的值
a
,或者20181214
如果$a
為空或變數未設置。這是一個標準的參數擴展。然後你要麼使用
export a=20181212 ./script.sh
或者
a=20181212 ./script.sh
後者避免在呼叫環境中設置變數,並且只為腳本環境設置它。
如果您無法修改腳本,那麼
a
無論您做了什麼,該腳本都會始終覆蓋您的值。在這種情況下,請聯繫維護腳本的人員並說明情況。如果情況變得更糟,請使用您可以修改的腳本副本,假設腳本不希望位於特定位置。