【发布时间】:2019-11-05 15:26:09
【问题描述】:
我正在处理一个处理 Herestring 输入的 while 循环:
one_is_achieved=0
while IFS="=" read key value ; do
process_entry key value && one_is_achieved=1
done <<<$(output_entries)
# Dealing with one_is_achieved
[...]
函数output_entries() 输出键值行:
k1=some stuff
k2=other stuff
k3=remaining stuff
问题,命令替代 $() 捕获标准输出但用空格替换行尾,导致k1 条目为some stuff k2=other stuff k3= remaining stuff。
有没有办法防止替换或恢复行尾?
注意:我这样解决了我的问题:
while IFS="=" read key value ; do
process_entry key value && one_is_achieved=1
done < <(output_entries)
但我认为原始问题仍然相关(保留或恢复行尾)。
【问题讨论】:
-
我在您的帖子中没有看到 HERE 字符串。
-
@user1934428:
<<<。也许我用了错误的术语来命名它? -
啊,对不起,我的错误。我混淆了“这里的文档”和“这里的字符串”。当然你是对的 thsi 是一个这里的字符串。
标签: bash newline herestring