任何人都可以通过以下代码片段帮助我 -
echo Start|cat>>log
当我尝试
echo Start>>log
它为日志文件提供了相同的输出。谁能解释这两个命令之间的区别?
cat
是可以接受参数并使用它的程序之一,或者如果您不提供参数,则仅使用其标准输入。换句话说,虽然:
cat xyzzy
将打开文件xyzzy
并输出其内容,命令:
cat
它自己将读取其标准输入并将其发送到标准输出。
因此,在没有参数的情况下通过管道传递一些输出cat
与仅在没有 的情况下发送输出没有 cat
什么不同,除了创建一个多余的过程。换句话说,这两者在功能上是相同的:
echo xyzzy | cat
echo xyzzy
您可以使用其中任何一种,但后者(对于我上面的示例和您的问题)将使用更少的进程和更少的击键。cat
过滤器本身将简单地将数据按原样传递,因此没有必要。