从 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
我想像这样遍历单词列表:
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