我有一個項目,其中包含一個通用的 bash 檔案作為變數。腳本有辦法改變這些嗎?
範例操作腳本:
$ cat sampleaction.sh
#!/bin/bash
# Source variables
. commonlibrary
# Do action according to mode
case $MODE in
idle)
#do nothing
active)
#do something
$MODE
存在於公共文件中,並且僅在啟動每個單獨的操作腳本時進行檢查。我希望這個變數由 setup bash 腳本設置,如果它包含一個標誌,例如。--active
。
設定腳本:
cat initaction.sh
#!/bin/bash
# Source variables
. commonlibrary
# Check flags
while [ $# -gt 0 ]
do
case $1 in
--active)
shift;
MODE=active;;
esac
done
答案1
您可以透過將新值回顯到該文件中來更改公共文件中的變數:
echo "MODE=active" > commonlibrary
您的程式碼的範例:
#!/bin/bash
. commonlibrary
case $MODE in
idle)
#do nothing
active)
echo "MODE=newmode" > commonlibrary
現在,如果該文件中有多個變量,就會出現問題。您需要先取得每個變量,然後建立所有新值並將它們新增至檔案。有很多方法可以做到這一點,您可以研究它或想自己的方法。