我试图弄清楚 Bash 文件中的这条语句的作用。我认为它结合了stdout
,stderr
并将其输出到指向的文件$log
并将多行字符串附加到它。这样对吗?
cat << EOF >> $log 2>&1
the quick brown
fox jumps
EOF
答案1
首先,cat
必须小写。该命令语句使用的概念这里的文件。
第一部分 cat << EOF
意味着stdin
命令的(标准输入)随后出现。所有这些都出现在第一行之后,直到该单词EOF
成为命令的标准输入cat
。或者从文档中:
这种类型的重定向指示 shell 从当前源读取输入,直到一行仅包含分隔符(在你的情况下是末梢血)(没有尾随空格)可见。到该点读取的所有行都将用作命令的标准输入。
第二部分命令的意味着和>> $log 2>&1
的输出应附加到名称位于变量 中的文件中。stdout
stderr
$log
结论:现在生成了这样的文件:
the quick brown
fox jumps