3

シェルスクリプトは初めてです。私は、あるスクリプトファイルが変数を設定し、別のスクリプトファイルがそれらの変数を取得して操作する必要があるようなプロジェクトに取り組んでいます。最初のスクリプトの変数をファイルに保存し、2番目のスクリプトファイルでそれを読み取っています。

最初のスクリプトファイルfirst.shで、私は次のようにしています。

echo "a=6" > test.dat
echo "b=7" >> test.dat
echo "c=8" >> test.dat

>上書きする最初の変数と、追加する次の値に使用します。したがって、ファイルには常に最新の値が含まれます。

これよりも良いアプローチはありますか?

2番目のスクリプトファイルでは、適切な値をどのように読み取って入力できますか?

4

4 に答える 4

9

次を使用して、スクリプトからこの変数をロードできますsource

source test.dat

あるいは単に

. test.dat

例:

$ echo "a=6" > test.dat ; echo "b=7" >> test.dat ; echo "c=8" >> test.dat
$ cat test.dat 
a=6
b=7
c=8
$ . test.dat
$ echo $a $b $c
6 7 8

これらの変数を生成するスクリプト/プログラムがある場合は、を使用することもできますeval

例:

$ cat generate.sh
echo a=6
echo b=7
echo c=8

$ bash generate.sh 
a=6
b=7
c=8

$ eval $(bash generate.sh)
$ echo $a $b $c
6 7 8
于 2012-07-24T10:18:01.527 に答える
1

2番目のスクリプトで変数を読み取るには、単にそれをソースする(インポートする)必要があります。

## Put this line in your second script
. test.dat
于 2012-07-24T10:19:12.320 に答える
0

ファイルの書き込みに関しては、さまざまなアプローチがあります。どちらが良いかは多くの要因に依存します。一般的なアプローチの1つは、ヒアドキュメントを使用することです。

cat > test.dat << EOF
a=6
b=7
c=8
EOF
于 2012-07-24T14:45:04.753 に答える
0

変更の可能性は常にあります。変数ファイルを書き込む方法は優れています。それでも次のように変更できます。

echo -e "a = 6 \ nb = 7 \ nc = 8"> test.dat

また、スクリプトで変数ファイルを読み取るには、次を追加できます。

ソースtest.dat

また

(私の推薦:-))

。test.dat

于 2012-07-24T20:12:15.890 に答える