Datei mit vim über Dialog bearbeiten

Datei mit vim über Dialog bearbeiten

Ich versuche, eine terminalbasierte GUI für ein Tool zu erstellen. Der folgende Code ruft so etwas auf

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

Bildbeschreibung hier eingeben

Und beim Drücken ENTERöffnet sich das folgende Bearbeitungsfeld: Bildbeschreibung hier eingeben

Ich habe versucht, die Datei zu öffnen, vimaber beim Speichern der Datei werden die Tools beendet.
Ich möchte wissen, wie ich die Datei öffne und nach dem Speichern oder Beenden zum Tool zurückkehre vim?

Antwort1

exec ist laut bashManpage ein Shell-Builtin (habe Geduld, es ist weit weg)

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

Betrachten Sie 2 Skript

exec ls
pwd

Und

ls
pwd

Wenn Sie beispielsweise die erste Shell ausführen, exec lswird der Befehl die Shell ersetzen (die verbleibende Eingabe wird verworfen), pwdder Befehl wird nie ausgeführt.

verwandte Informationen