使用 Dialog 使用 vim 編輯文件

使用 Dialog 使用 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

exec 是內建的 shell,根據bash手冊頁(請耐心等待,它很遠)

   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

如果執行第一個 shell,exec ls命令將取代 shell(丟棄剩餘的輸入),pwd命令將永遠不會執行。

相關內容