【发布时间】:2017-03-20 14:38:32
【问题描述】:
我有一个从 grep 输出构建的文件,它看起来像这样:
http://google.fr
Pierre google
http://test.fr
--
http://yahoo.com
Jean Yahoo
http://test.fr
--
我为每 3 行创建了一个分隔符“--”。我想将每一行分配给一个变量,例如:
url= "http://google.fr"
name= "Pierre Google"
web= "http://test.fr"
所以我使用 IFS=-- 制作了 bash 脚本,并尝试使用 -d 选项来回显,但我不知道如何将这 3 行分配给每个块的变量。
感谢您的帮助
【问题讨论】:
-
IFS是一个无序的字符集合;--与-完全相同。同样,-d的后续参数是一个 single 字符。要准确地解释为什么您使用的read不起作用,我们需要查看它,但也很难看出单个read在这里如何是正确的工作。 (我想一个人可以使用IFS=$'\n' read -r -d - -a pieces或类似的,并接受所有其他结果都是空的)。 -
顺便说一句,
url= "http://google.fr"实际上将http://google.fr作为命令运行,url以空值导出到环境。这样的分配将是url="http://google.fr",没有空格。