如何在循环

时间:2018-01-31 16:06:06

标签: bash file variables

我正在尝试编写一个bash脚本,它将从文件中读取变量对,然后在循环中使用它们。我正在尝试使用这个

while read p; do $p; echo "$a and $b"; done < text.txt

text.txt包含以下内容:

a="teststring"; b="anothertest"
a="teststring1"; b="anothertest1"
a="teststring2"; b="anothertest2" 

输出看起来像这样:

bash: a="teststring";: command not found
 and
bash: a="teststring1";: command not found
 and

我发现了类似的问题command line arguments from a file content

但无法弄清楚如何将答案应用于我的特定情况。谢谢!

1 个答案:

答案 0 :(得分:0)

使用邪恶eval的一种解决方案,仅用于测试目的,不用于生产:

while read line; do
    eval "$line"
    echo "$a and $b"
done < file.txt

输出:

teststring and anothertest
teststring1 and anothertest1
teststring2 and anothertest2

请阅读

http://wiki.bash-hackers.org/commands/builtin/eval