尝试以下操作 - 但不起作用:
while read -r cfg val
do
echo "=$cfg=$val="
done
done < <(sed 's/#.*//;/^ *$/d' << CFGVAL )
cfg1 val1
#some comment
cfg2 #val2
#cfg3 val3
CFGVAL
e.g。想
while
sed
循环的标准输入
sed
应该从HEREDOC
想要输出
=cf1=val1=
=cfg2==
e.g。想
#.*
请帮助多重重定向。我知道,有可能用
来解决while read -r cfg val
do
#do tests here
echo "..."
done <<HEREDOC
...
HEREDOC
但寻找第一个解决方案。
答案 0 :(得分:2)
您的here-doc是流程替换的一部分。这意味着它需要在parens内部。你需要移动近距离:
while read -r cfg val
do
echo "=$cfg=$val="
done < <(sed 's/#.*//; /^ *$/d' << CFGVAL
cfg1 val1
#some comment
cfg2 #val2
#cfg3 val3
CFGVAL
)
这会产生输出:
=cfg1=val1=
=cfg2==