도구용 터미널 기반 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
bash
exec는 매뉴얼 페이지 에 따르면 내장된 쉘입니다.
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
첫 번째 셸이 실행되면 exec ls
명령은 셸을 대체하고(나머지 입력 삭제) pwd
명령은 실행되지 않습니다.