<< 重定向在 TCSH shell 中的用途

What usage for << redirection in TCSH shell

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

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

<< 是做什么的?它似乎不向 wc stdin 发送数据,但为什么呢?

在 csh 中,与在 POSIX-family shell 中一样,<< 启动一个 heredoc —— 即一个多行字符串,以仅包含紧跟其后的单词的一行结尾。因此,在以下示例中:

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

this is test data here 作为标准输入提供给 cat,其标准输出作为标准输入提供给 wc。 (顺便说一句,在这里使用 cat 毫无意义;您可以 wc <<input >output 获得相同的效果,并且效率低得多)。