为什么&#34; echo&lt; <eof“not =”“working =”“as =”“expected =”“

时间:2017-11-09 23:18:57

标签: bash

=”“

我我试图理解bash这里的文档功能。下面的代码按预期工作并返回&#34; abc&#34;到终端。如果我用cat替换程序echo我做没有看到任何输出。为什么我不能通过这里传递文件回声?是因为它是内置的bash吗?
cat <<EOF abc EOF

&#34; ABC&#34;按预期输出到终端。

虽然没有输出以下的comamnd -

echo <<EOF
abc
EOF

1 个答案:

答案 0 :(得分:4)

你想:

cat <<EOF
abc
EOF

否则,您所做的只是运行echo,其stdin连接到其中包含abc的临时文件。由于echo不读取stdin,因此它永远不会发现是否有内容等待从那里读取。