Bash
使用 bash EXIT 陷阱來確認或取消 ctrl+d
是否有一種簡單的方法可以在退出 shell 之前要求確認,並在確認被拒絕時防止 shell 退出?這對於避免意外終止用於隧道的 SSH 會話很有用。
問題
trap ... EXIT
是它在完成陷阱後仍然退出。到目前為止,我發現的最有希望的解決方案在使用 trap 確認退出中進行了描述,其中討論了 ctrl+c 但似乎可以改為為 ctrl+d 工作。
set -o ignoreeof
這將導致互動式 shell 忽略
EOF
(Ctrl+D
)。
bash
外殼將列印Use "exit" to leave the shell.
如果你按
Ctrl+D
。您還可以將 shell 變數設置
IGNOREEOF
為某個正整數值。Ctrl+D
該值確定在 shell 實際退出之前必須按下多少次。做set -o ignoreeof
in的效果bash
是相同的設置IGNOREEOF=10
(反之亦然)。
ignoreeof
shell 選項是一個 POSIX 選項,應該在所有類似 POSIX 的 shell 中都可用。有關的: