为什么在将财富的产出输入cowsay时不看工作

时间:2015-07-23 15:09:54

标签: linux watch piping

cowsay是一个愚蠢的linux工具,用于显示在终端中说出给定文本的母牛。

$ cowsay hello

财富也是一个愚蠢的Linux,用于在终端中显示“随机”报价。

$ fortune

这两个命令都可以使用手表在终端中重复运行,例如

$ watch cowsay hello
$ watch fortune

此外,这两个命令可以合并,因此母牛会说“随机”引号。通过将财富的产出输入cowsay。

$ fortune | cowsay

然而,使用手表和管道将命运输出到cowsay的组合没有做任何事情......即挂起直到过程结束

$ watch fortune | cowsay

有谁知道为什么?

2 个答案:

答案 0 :(得分:5)

使用watch fortune | cowsay,您将watch fortune的输出汇总到cowsay。您希望watchfortune的值传送到cowsay,因此您应该引用它,以便监视将整个命令执行为

watch 'fortune | cowsay'

答案 1 :(得分:2)

这是因为|之后的所有内容都在子shell中执行。试试这个:

$ watch "fortune | cowsay"