0

任何人都可以通过以下代码片段帮助我 -

echo Start|cat>>log

当我尝试

echo Start>>log

它为日志文件提供了相同的输出。谁能解释这两个命令之间的区别?

4

1 回答 1

0

cat是可以接受参数并使用它的程序之一,或者如果您不提供参数,则仅使用其标准输入。换句话说,虽然:

cat xyzzy

将打开文件xyzzy并输出其内容,命令:

cat

它自己将读取其标准输入并将其发送到标准输出。

因此,在没有参数的情况下通过管道传递一些输出cat与仅在没有 的情况下发送输出没有 cat什么不同,除了创建一个多余的过程。换句话说,这两者在功能上是相同的:

echo xyzzy | cat
echo xyzzy

您可以使用其中任何一种,但后者(对于我上面的示例和您的问题)将使用更少的进程和更少的击键。cat过滤器本身将简单地将数据按原样传递,因此没有必要。

于 2013-09-22T06:47:07.893 回答