Edite o arquivo com o vim usando o Dialog

0

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

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

EaopressionarENTEReeditboxcomoasseguintesabre:

Eu tentei abrir o arquivo em vim , mas ao salvar o arquivo, as ferramentas saem.
Eu quero saber como abrir o arquivo e retornar à ferramenta salvando ou saindo de vim ?

    
por lordzuko 28.09.2016 / 13:16

1 resposta

0

exec é um shell embutido como por bash man page (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, o comando exec ls substituirá o shell (descartando a entrada restante), o comando pwd nunca será executado.

    
por 28.09.2016 / 13:50