繁体   English   中英

shellscript从文件中读取变量

[英]shellscript reading variables from a file

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

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

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

我使用>作为它覆盖的第一个变量以及它附加的下一个值。 因此文件将始终具有最新值。

有没有比这更好的方法?

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

您可以使用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

要读取第二个脚本中的变量,您只需要获取它(导入它):

## Put this line in your second script
. test.dat

在编写文件方面,有不同的方法。 哪个更好取决于很多因素。 一种常见的方法是使用heredoc:

cat > test.dat << EOF
a=6
b=7
c=8
EOF

总是有机会进行修改,编写变量文件的方法很好。 您仍然可以按如下方式更改:

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

要通过脚本读取变量文件,可以添加以下内容:

source test.dat

要么

(我的推荐:-))

TEST.DAT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM