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共通ファイルに存在し、各アクション スクリプトの起動時にのみチェックされます。フラグ (例: ) が含まれている場合、この変数をセットアップ 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

さて、そのファイルに複数の変数があった場合、問題が発生します。まずすべての変数を取得し、次にすべての新しい値を構築してファイルに追加する必要があります。これを行うには多くの方法があり、それについて調べるか、独自の方法を考え出すことができます。

関連情報