从 env 文件中将一串单词读入 for 循环

Reading a string of words into for loop from env file

我想像这样遍历单词列表:

words="hello world"
for w in $words; do
    echo $w
done

但我希望单词列表 (words="hello world") 来自放置在目录中的 .env 文件,然后使用 export $(grep -v '^#' .env | xargs).[=17= 读取 env 文件]

我可以执行上述操作,但是,for 循环仅循环遍历第一个单词,就好像 words 中的空格正在停止循环一样。这是为什么?

我从字面上将变量从 .sh 脚本复制到 .env 文件中,但它的工作方式不同。

一个简单的解决方法是用逗号而不是空格来分隔单词:

.env 文件

words=hello,world

脚本

然后循环会起作用:

export $(grep -v '^#' .env | xargs)

for w in $words; do
    echo $w
done