<<<<<<在TCSH shell中重定向

时间:2017-04-08 16:26:19

标签: csh tcsh

我理解<输入重定向和两个> / >>输出重定向(文件中的双追加内容)。但我不理解<<双输入重定向。

例如echo "cat < input | wc > output" | tcsh生成此输出文件:2 2 11echo "cat << input | wc > output" | tcsh生成此输出文件:0 0 0

<<做什么?它似乎没有向wc stdin发送数据,但为什么呢?

1 个答案:

答案 0 :(得分:1)

在csh中,就像POSIX系列shell一样,<<启动一个heredoc - 也就是说,一个多行字符串由一行只包含紧跟在它之后的单词终止。因此,在以下示例中:

cat << input | wc > output
this is test data here
input

this is test data here以stdin的形式提供给cat,其标准输出以stdin的形式输入wc。 (顺便说一下,在这里使用cat没有任何意义;你只能wc <<input >output具有相同的效果,并且效率低得多。)