vim을 사용하여 대화 상자를 사용하여 파일 편집

vim을 사용하여 대화 상자를 사용하여 파일 편집

도구용 터미널 기반 GUI를 구축하려고 합니다. 아래 코드는 다음과 같은 것을 호출합니다.

while true
do
   CHOICE=$(dialog --keep-window --clear --no-shadow \
                --backtitle "$BACKTITLE" \
                --title "$TITLE" \
                --menu "$MENU" \
                $HEIGHT $WIDTH $CHOICE_HEIGHT \
                "${OPTIONS[@]}" \
                2>&1 >/dev/tty)

   clear

   case $CHOICE in
   #*) exec vim "$(echo $CHOICE  | cut -d ':' -f 1)" ;  ;;
   *)  filename="$(echo $CHOICE | cut -d ':' -f 1)"
       #mkfifo "$TOMATO_DIR/cf"
       if [ ! -z $filename ] ; then
           dialog --editbox $filename 60 80
           #cp "$TOMATO_DIR/cf" $filename
           #rm -f ${INPUT}
       else
           clear
           exit 0
       fi
       clear ;;
   esac

done

여기에 이미지 설명을 입력하세요.

ENTER아래와 같이 편집 상자를 누르고 엽니다.여기에 이미지 설명을 입력하세요.

파일을 열려고 하는데 vim파일을 저장하면 도구가 종료됩니다.
저장하거나 종료할 때 파일을 열고 도구로 돌아가는 방법을 알고 싶습니다 vim.

답변1

bashexec는 매뉴얼 페이지 에 따르면 내장된 쉘입니다.

   exec [-cl] [-a name] [command [arguments]]
          If command is specified, it replaces the shell.  No new process is created.

2개의 스크립트를 고려하세요.

exec ls
pwd

그리고

ls
pwd

첫 번째 셸이 실행되면 exec ls명령은 셸을 대체하고(나머지 입력 삭제) pwd명령은 실행되지 않습니다.

관련 정보