BashスクリプトでVimコマンドを実行する

BashスクリプトでVimコマンドを実行する

以前に質問した内容と関連がありますが、もしかしたら他の方が使うかと分けて上げました。

以下のように、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

おすすめ記事