如何将其他文件中的行导出到当前 shell

如何将其他文件中的行导出到当前 shell

我在一个名为的文件中包含此内容foo.env

foo=bar

然后我想读取该文件并将这些行导出到 shell:

for line in $(cat ./foo.env); do
 eval export $line
done

但当我跑步时

echo $foo

变量是空的..我做错了什么?

答案1

未修改的代码

for line in $(cat ./foo.env); do
 eval export $line
done
echo $foo

如果放入文件并使用 sh 或 bash 执行,则完全按照您的要求执行。也许您echo $foo在不同的 shell 中运行?

但请注意,POSIX shell 专门为此情况定义了一个内置函数:

. ./foo.env
echo $foo

相关内容