类似岗位约cd,我已经覆盖exit到做到以下几点:
function exit() { $HOME/script.sh && builtin exit "$@"; }
Run Code Online (Sandbox Code Playgroud)
虽然这在exit直接调用时按预期工作,但是当 shell 通过 CTRL-D 退出时,它不会执行,或者,如果它确实执行,脚本就无法完成。
是什么赋予了?exit使用 CTRL-D 时是否调用了其他方法?
Ste*_*del 10
当您按Ctrl+ 时D,您真正对 bash 说的是EOF(文件结尾)。因此,shell 只是终止,因为没有更多的输入要读取。如果要在退出时执行操作,请使用陷阱:
trap "~/script.sh" exit
Run Code Online (Sandbox Code Playgroud)
使用“退出”陷阱,您可以 在 shell 退出之前执行任何 shell 命令,并且 shell 是由exit还是由Ctrl+终止并不重要D。
| 归档时间: |
|
| 查看次数: |
7268 次 |
| 最近记录: |