我想在关闭终端时执行特定的sh脚本。
我编辑了.bash-logout文件,在if语句中添加了这行代码
[ -x /home/user/Documents/logout_msg.sh ] && /home/user/Documents/logout_msg我制作了logout_msg.sh可执行文件,并在if语句之外添加了基本回显消息,并在之后添加了睡眠命令,但这在关闭终端时没有显示。
有什么问题吗?
发布于 2018-04-04 15:46:47
当您退出登录shell (从~/.bash_logout )时,源源文件仅为C1:
当交互式登录shell退出时,或者非交互式登录shell执行退出内置命令时,bash从文件~/.bash_logout读取和执行命令(如果存在的话)。
当您打开终端时,您正在运行一个交互式的非登录shell,因此~/.bash_logout与此无关。有关不同类型的shell的更多信息,请参见我在这里的回答。
为了在每次关闭终端时都执行一些操作,您可以使用trap设置一个命令,以便在交互式bash会话每次退出时运行。为此,请将这一行添加到您的~/.bashrc中:
trap /home/user/Documents/logout_msg.sh EXIT 当然,如果该脚本正在向终端打印消息,则需要确保您的logout_msg.sh包含一个sleep命令,以便用户有时间读取该消息。类似于:
echo "Whatever message you want"
sleep 10 ## wait for 10 secondshttps://askubuntu.com/questions/1021971
复制相似问题