我试过注销,退出,关闭。
如果使用注销,则会提示logout: not login shell: use 'exit'
。
如果我使用exit,它只是退出对话框,而不是shell。
如果我设置TMOUT = 1,TMOUT将保持不变。
我可以在对话脚本中注销shell吗?
#!/bin/bash
HEIGHT=15
WIDTH=40
CHOICE_HEIGHT=4
OPTIONS=(1 "Logout")
CHOICE=$(dialog --clear \
--backtitle "back" \
--title "title" \
--menu "menu" \
$HEIGHT $WIDTH $CHOICE_HEIGHT \
"${OPTIONS[@]}" \
2>&1 >/dev/tty)
clear
case $CHOICE in
1)
logout
TMOUT=1
exit
;;
esac
编辑1:
这也不行
//menu.sh
case $CHOICE in
1)
exit 99
;;
esac
./menu.sh
#!/bin/bash
if [ $? -eq 99 ]
then
logout
fi
2条答案
按热度按时间ttvkxqim1#
当你直接调用Bash脚本时,它会在一个子shell中执行。如果你想在当前shell中运行它,你需要源代码。
或者干脆
k75qkfdt2#
在您的脚本中,您可以设置退出值(例如exit 99),然后按照您调用脚本的方式检查它:
您可以设置终端会话自行关闭:
您可以从脚本中删除终端: