
私はいくつかの個別の bash スクリプトを持っています。それらは異なることを実行し、サイズも大きいです (それぞれ 70 ~ 100 行)。そのため、それらを別々のファイルに保存しています。しかし、それらはすべて中心的な問題に関連しており、したがっていくつかの定数値を共有しています。
そこで、簡単にするために、定数変数を 10 個用意します。そのうちのいくつかは文字列、いくつかは数値、2 つは配列で、これらすべてを 10 個の異なる bash スクリプト全体で使用できる必要があります。どうすればこれを実現できますか?
これらの個々の bash スクリプトを呼び出すことができる中央のスクリプトがありますがmain.sh
、常にそうであるとは限りません。コマンドライン ( ./script1.sh
) から直接呼び出すこともできます。その場合でも、変数はスクリプトで使用できるようにする必要があります。
私が考えた唯一の方法は、dev/script1.temp.sh
ファイルにコード化し、ファイルを実行する必要があるたびに、ファイル全体で特定の定数 ( ) のすべての出現をbuild.sh
( を介して) 単純に置き換えて を生成する bash スクリプトを実行することでした。grep
$CONSTANT
build/script1.sh
答え1
constants.env
たとえば、すべての定数を 1 つのファイルに入れます。そして、それらの定数のいずれかを使用するすべてのスクリプトで、 を. constants.env
入れて定数を読み込みます。
例えば、constants.env
:
HELLO=world
script.sh
#!/bin/bash
. constants.env
echo $HELLO
例を実行する:
$ ./script.sh
world