쉘스크립트 vi에디터 저장종료 어떻게하나요?

ipsuljjang의 이미지

#!/bin/bash
zoneroot=/var/named/chroot/var/named
zonename=test.co.kr.zone
read -p " enter dns > " dns
pushd $zoneroot
vi $zonename << EOF
\027
:wq
EOF

------------------------------

위와 같이 zone 파일에 가상호스트 추가하는 스크립트 작성하려고하는데 vi 에디터를 wq 해서 종료하는부분 테스트중인데.... 저장종료는 안되고

제대로 종료가 안되서 스왑파일만 생겨나네요.ㅜㅜㅜㅜ

이 가상호스트가 문서 중간부분에 끼어들어가는거라서 후....

ftp는 EOF 사용해서되는데....

vi는 잘모르겠습니다...

도와주십시요.

planetarium의 이미지

:wq 대신 ZZ를 쓰면 어떻게 될것 같기도 합니다만 일단 vi를 쓴다는게 좀 에러같습니다.
저 같은 경우 중간에 텍스트 파일 중간에 내용을 끼워넣을때
head와 echo, tail을 조합해서 해결했습니다. 더 좋은 방법도 있을것 같네요...

stypr의 이미지

.

garam111의 이미지

원하시는 작업이 잘 처리될지는 모르겠지만 참고 하세요.. ^^;;

$ cat script.txt 
:%s/1/2/g
:wq
 
$ cat dest.txt 
11
1
 
$ vi -s script.txt dest.txt 
 
$ cat dest.txt 
22
2

===================================
행동할 때 열정은 자라난다.

ydhoney의 이미지

:wq 를 wq 로 바꾸시면 어떻게 되시나요?

vi/vim 의 -c 옵션으로 command line 방식으로 하는게 좀 더 직관적인 편이니 사용에 참조하시면 =3

sisuc의 이미지

강제저장종료

:!wq

는 안먹히나요

위대한 한글