mik*_*ike 1 shell-script cat here-document
我试图弄清楚 Bash 文件中的这个语句是做什么的。我认为它结合了stdout,stderr并将其输出到$log指向的文件并将多行字符串附加到它。这样对吗?
cat << EOF >> $log 2>&1
the quick brown
fox jumps
EOF
Run Code Online (Sandbox Code Playgroud)
首先,cat必须写成小写。此命令语句使用here 文档的概念。
第一部分 cat << EOF意味着stdin命令的(标准输入)在后面。第一行之后的所有内容直到单词EOF是命令的标准输入cat。或从文档:
这种类型的重定向指示 shell 从当前源读取输入,直到看到仅包含分隔符(在您的情况下为EOF)(没有尾随空格)的行。然后将读取到该点的所有行用作命令的标准输入。
第二部分的命令的>> $log 2>&1那个的输出装置stdout和stderr两个,应该附加到其名称是在变量a文件$log。
结论:现在生成了这样的文件:
the quick brown
fox jumps
Run Code Online (Sandbox Code Playgroud)