我实际上不想这样做;意外后果法则对这个想法非常重要。我只是好奇这种能力是否存在。对于某些脚本来说,作为突破步骤,类似的功能可能会很方便。
假设我想将其写入${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 进行了正确的操作,会话将正常结束。