Why is “echo foo | read a ; echo $a” not working as expected?

前端 未结 8 1752
慢半拍i
慢半拍i 2021-02-04 15:37

I could replicate the problem with various shells under FreeBSD, GNU/Linux, and Solaris. It had me head-scratching for more than an hour, so I decided to post the question here

8条回答
  •  借酒劲吻你
    2021-02-04 16:12

    read expects input on a new line

    while read a; do echo $a; done
    foo
    bar
    ^D
    

    is more or less what you wanted

提交回复
热议问题