这与我之前提出的一个问题有关,但我想将其分开,以防其他人可以使用它。
我有一个从命令行在名为 dummy.out 的文件上运行的命令,如下所示
vim -E -s dummy.out <<-EOF
:%s/old/new/g
:%s/old2/new2/g
:%s/old3/new3/g
:update
:quit
EOF
从命令行这是有效的,但是当我将它添加到我的 bash 文件 bashscript.sh 中时
#!/bin/bash
# bash script
var01="start script"
echo $var01
vim -E -s dummy.out <<-EOF
:%s/old/new/g
:%s/old2/new2/g
:%s/old3/new3/g
:update
:quit
EOF
我收到以下错误
warning: here-document at line 7 delimited by end-of-file (wanted 'EOF')
我如何让这个命令行命令在这个 bash 文件中运行?
答案1
好吧,看来 EOF 比我预期的要敏感得多
这不起作用
vim -E -s dummy.out <<-EOF
:%s/old/new/g
:%s/old2/new2/g
:%s/old3/new3/g
:update
:quit
EOF
这确实
vim -E -s dummy.out << EOF
:%s/old/new/g
:%s/old2/new2/g
:%s/old3/new3/g
:update
:quit
EOF