複数の bash スクリプトの複数の定数を維持する

複数の bash スクリプトの複数の定数を維持する

私はいくつかの個別の bash スクリプトを持っています。それらは異なることを実行し、サイズも大きいです (それぞれ 70 ~ 100 行)。そのため、それらを別々のファイルに保存しています。しかし、それらはすべて中心的な問題に関連しており、したがっていくつかの定数値を共有しています。

そこで、簡単にするために、定数変数を 10 個用意します。そのうちのいくつかは文字列、いくつかは数値、2 つは配列で、これらすべてを 10 個の異なる bash スクリプト全体で使用できる必要があります。どうすればこれを実現できますか?

これらの個々の bash スクリプトを呼び出すことができる中央のスクリプトがありますがmain.sh、常にそうであるとは限りません。コマンドライン ( ./script1.sh) から直接呼び出すこともできます。その場合でも、変数はスクリプトで使用できるようにする必要があります。

私が考えた唯一の方法は、dev/script1.temp.shファイルにコード化し、ファイルを実行する必要があるたびに、ファイル全体で特定の定数 ( ) のすべての出現をbuild.sh( を介して) 単純に置き換えて を生成する bash スクリプトを実行することでした。grep$CONSTANTbuild/script1.sh

答え1

constants.envたとえば、すべての定数を 1 つのファイルに入れます。そして、それらの定数のいずれかを使用するすべてのスクリプトで、 を. constants.env入れて定数を読み込みます。

例えば、constants.env

HELLO=world

script.sh

#!/bin/bash
. constants.env
echo $HELLO

例を実行する:

$ ./script.sh 
world

関連情報