Bash
在 bash 中重新映射 EOF (ctrl+D)
如果我在
bash
shell 中,由於stty
設置方式,鍵入Ctrl
+D
將發送一個EOF
tobash
,然後它將執行與命令幾乎相同的exit
操作,並退出 shell。我想知道是否有某種方法可以暫時重新映射它,以便
bash
在收到 時不會退出EOF
,而是執行我選擇的其他命令。我的動機是我正在使用 Python virtualenvs(通過
virutalenvwrapper
)。workon foo
將進入virtualenv,deactivate
並將離開virtualenv。有時,
deactivate
可用於清理,但當 ICtrl
+時D
,它會跳過該步驟。如果我可以做到
Ctrl
+D
(A) 執行deactivate
並剛剛退出 virtualenv (並重新映射Ctrl
+D
到exit
再次),那麼我可以繼續我的 shell,或者 (B) 執行deactivate
然後exit
它仍然會退出 shell,但是將進行清理,那太好了。
當 shell 退出時,您可以擷取
EXIT
執行特定的命令/函式。trap deactivate EXIT
將
deactivate
在退出 shell 之前執行。