取消注销并返回 shell

取消注销并返回 shell

我实际上不想这样做;意外后果法则对这个想法非常重要。我只是好奇这种能力是否存在。对于某些脚本来说,作为突破步骤,类似的功能可能会很方便。

假设我想将其写入${HOME}/.logout文件中:

#! /bin/bash
cd /path/to/git/working/project
if [ "$( git status | wc -l )" -gt 5 ]
then
  echo "Check in your work before you leave."
  <STOP THE LOG OUT PROCESS AND RETURN TO THE SHELL PROMPT>
fi

最后一点我该怎么做?会break做吗?

答案1

首先在会话中配置退出行为的陷阱:

trap ~/.logout EXIT

如果您愿意,可以将此陷阱行为添加到 bashrc 中,然后每次用户尝试退出 shell 时都会执行 .logout 脚本。

然后你可以编写.logout脚本:

#!/bin/bash
cd /path/to/git/working/project
if [ "$( git status | wc -l )" -gt 5 ]
then
  echo "Check in your work before you leave."
  bash 
fi

然后,当您尝试退出会话时,脚本 .logout 将被执行,并且 bash 将显示以检查用户是否做了正确的事情。如果用户对 git 进行了正确的操作,会话将正常结束。

相关内容