Linux

從 bash 腳本執行 Vim 命令

  • February 18, 2015

這與我之前提出的一個問題有關,但我想將其分開,以防其他人可以找到它的用途。

我有一個命令,我正在從命令行執行一個名為 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 文件中執行?

好的,看起來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

引用自:https://unix.stackexchange.com/questions/185496