我最初的印象是
$ ./myprog
moo[CTRL-D]
完全一样
$ echo moo > cow
$ ./myprog < cow
但我发现第二个版本中的 总是比第一个版本中的myprog
多一个。\n
为什么是这样?
事实证明wc
做了同样的事情......
$ wc -l
moo[CTRL-D]0
(显然零线是可能的?)
$ echo moo > cow
$ wc -l < cow
1
谁能向我解释一下吗?
答案1
echo
附加一个换行符,除非你告诉它不要这样做,通过放在-n
前面或\c
末尾,或者放在-e
前面和 \c
最后或者...你真的不想知道回声的所有种类。使用printf moo > cow
后,您将获得一个零行的文件。