Edite o arquivo com o vim usando o Dialog

Edite o arquivo com o vim usando o Dialog

Estou tentando construir uma GUI baseada em terminal para uma ferramenta. O código a seguir invoca algo assim

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

insira a descrição da imagem aqui

E ao pressionar ENTERe editar a caixa abre-se o seguinte: insira a descrição da imagem aqui

Tentei abrir o arquivo, vimmas ao salvá-lo, as ferramentas foram encerradas.
Quero saber como abrir o arquivo e retornar à ferramenta ao salvar ou sair vim?

Responder1

exec é um shell embutido de acordo com basha página de manual (seja paciente, está longe)

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

considere 2 scripts

exec ls
pwd

e

ls
pwd

se você executar o primeiro shell, exec lso comando substituirá o shell (descartando a entrada restante), pwdo comando nunca será executado.

informação relacionada