<< 重定向在 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
获得相同的效果,并且效率低得多)。
我了解 <
输入重定向和两个 >
/ >>
输出重定向(文件中的双重追加内容)。但是我不明白<<
双输入重定向。
例如 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
获得相同的效果,并且效率低得多)。