为什么要“读”?使用相同的输入会有不同的行为吗?
为什么 read 对于来自 a 的相同输入的行为不同管道和heredoc:
printf "" | while read line; do echo "line=$line"; done # outputs nothing
while read line; do echo "line=$line"; done <<< "" # outputs 'line='
如何在第二种情况下禁用输出?
Why does read behave differently with the same input from a pipe and a heredoc:
printf "" | while read line; do echo "line=$line"; done # outputs nothing
while read line; do echo "line=$line"; done <<< "" # outputs 'line='
How can I disable output in the second case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这里的文档末尾有一个隐式换行符(
\n
);printf ""
不输出任何内容。我不知道如何摆脱隐式换行符。The here document has an implicit newline (
\n
) at the end;printf ""
outputs nothing whatsoever. I don't know offhand of a way to get rid of the implicit newline.如果你可以丢弃所有空行......
If you can discard all empty lines...
使用
$'\c'
怎么样:How about using
$'\c'
: