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