"<< EOF" 要求结束的时候是单行 "EOF", 这一行前后不能有任何内容,否则这一行还是会进入命令的标准输入。
你的需求可以用括号把命令括起来:
echo "hello world" && \
(cat << EOF > test.txt
Hi all,
this is a test.
EOF
) && echo "foo bar"
【 在 ustcBoy 的大作中提到: 】
: 目标: 打印"hello world"后, 输出字符串"hi"到text.txt,然后再打印"foo bar". 命令之间用 && \连接. 执行成功后再继续下一个.
: ChatGpT给的答案我用截图吧, 把它的代码拷贝运行了一下,好像并不太对. 三个命令的结构是符合意图的,我只是希望在第二个命令(cat EOF)之后用 && \接续下一个命令, 这样复制一大段脚本到bash中在成功的情况下可以连续地一次性执行完毕.
: ps:在这个问题之前我问了它使用cat EOF这种格式写入多行字符串的相关问题.
: ...................
--
修改:ArchLinux FROM 111.206.173.*
FROM 111.206.173.*