输入重定向 (

输入重定向 (

我最初的印象是

$ ./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后,您将获得一个零行的文件。

相关内容