我正在处理一个处理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
问题,命令 subtitution $()
捕获 stdout 但用空格替换行尾,导致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)
但我认为最初的问题仍然相关(保留或恢复行尾)。