在linux中管道

时间:2011-03-01 00:47:43

标签: shell pipe

我有一个名为test的文件,其中包含“hello”一词。

不应该

     echo test | cat 

输出你好?因为它将来自回波测试的输出(即测试)作为cat的输入。所以基本上我正在进行猫测试。

但实际输出是测试,我真的很困惑。

4 个答案:

答案 0 :(得分:2)

您的管道将test作为输入发送到cat,而不是参数。你可以这样做:

cat `echo test`

使用cat参数控制为echo

答案 1 :(得分:1)

echo打印其参数。 cat打印一个默认为标准输入的文件。管道echo的标准输出连接到cat的标准输入时。

正确就是cat test

答案 2 :(得分:1)

来自cat --help

  

如果没有FILE或FILE是 - ,请阅读标准输入。

在您的情况下,cat从标准输入读取,test并输出。

答案 3 :(得分:0)

在某些情况下,您可能希望参数通过管道传递。这就是你要这样做的方式:

echo test | xargs cat

将输出名为“test”的文件的内容