從 bash 腳本更改公共項目庫值

從 bash 腳本更改公共項目庫值

我有一個項目,其中包含一個通用的 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

現在,如果該文件中有多個變量,就會出現問題。您需要先取得每個變量,然後建立所有新值並將它們新增至檔案。有很多方法可以做到這一點,您可以研究它或想自己的方法。

相關內容