假设我有一个脚本,该脚本想通过管道传递到另一个命令或重定向到文件(sh
示例使用管道)。假设我正在使用bash。
我可以使用echo
:
echo "touch somefile
echo foo > somefile" | sh
我也可以使用cat
以下方法做几乎相同的事情:
cat << EOF
touch somefile
echo foo > somefile
EOF
但是,如果我将“ EOF”替换为“ EOF | sh”,它只是认为这是heredoc的一部分。
如何使它cat
从stdin输出文本,然后将其通过管道传输到任意位置?
@RahulPatil当然没用。我只是想要一个包含多行代码的示例,以更好地说明heredoc。并查看示例使用
—
奋斗
echo
-我想知道将使用什么等效方法cat
。
您的示例是使用
—
戴夫X
sh
多个字符串创建脚本并将其直接传递给sh
。我发现您的Q想要将多个命令(包括HERE文档)的文本输出直接传递给命令。Ash的答案的第二个示例就是这样做的。
touch
除非在那里,否则您到底想要什么?只是读取输入文件并使用stdout重定向到另一个文件?