我正在尝试为工具构建一个基于终端的 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
我尝试打开文件,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
命令将永远不会被执行。