shellscript从文件中读取变量

Lol*_*lly 3 unix linux shell

我是shell脚本的新手.我正在开发一个项目,其中需求就像一个脚本文件将设置变量而另一个脚本文件必须获取这些变量并对其进行操作.我将变量从第一个脚本存储到文件中,在第二个脚本文件中我正在读取它.

在第一个脚本文件中,first.sh,我喜欢

echo "a=6" > test.dat
echo "b=7" >> test.dat
echo "c=8" >> test.dat
Run Code Online (Sandbox Code Playgroud)

我用>它覆盖的第一个变量和它附加的下一个值.因此文件将始终具有最新值.

有没有比这更好的方法?

在第二个脚本文件中如何读取和填充适当的值?

Igo*_*bin 8

您可以使用source以下命令从脚本加载此变量:

source test.dat
Run Code Online (Sandbox Code Playgroud)

要不就

. test.dat
Run Code Online (Sandbox Code Playgroud)

例:

$ 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
Run Code Online (Sandbox Code Playgroud)

如果您有一个生成这些变量的脚本/程序,您也可以使用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
Run Code Online (Sandbox Code Playgroud)