Linux 中的管道
我有一个名为 test 的文件,其中包含单词“hello”。
不应该
echo test | cat
输出你好吗?因为它采用 echo 测试(即 test)的输出作为 cat 的输入。所以基本上我在做猫测试。
但实际输出是测试,我真的很困惑。
i have a file called test which contains the word "hello" in it.
shouldn't
echo test | cat
output hello? since its taking the output from the echo test, which is test, as the input for cat. so essentially im doing cat test.
but the actual output is test, im really confused.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您的管道将
test
发送到cat
作为输入,而不是作为参数。您可以这样做:使用
echo
控制cat
的参数。Your pipes sends
test
tocat
as the input, not as the argument. You could do:to control the argument to
cat
withecho
.echo
打印它的参数。cat
打印默认标准输入的文件。当您使用管道时,echo
的标准输出连接到cat
的标准输入。正确的就是
cat test
。echo
prints its arguments.cat
prints a file which is by default standard input. When you pipeecho
's standard output is connected tocat
's standard input.Correct is simply
cat test
.来自
cat --help
在您的情况下,
cat
从标准输入(即test
)读取并输出。From
cat --help
In your case,
cat
reads from stdin, which istest
and outputs that.在某些情况下,您可能希望参数通过管道传递。您将这样做:
这将输出名为“test”的文件的内容。
In some cases you might want the argument to be passed through the pipe. This is how you would do that:
which will output the contents of the file named "test".