Bash

使用 bash EXIT 陷阱來確認或取消 ctrl+d

  • April 16, 2019

是否有一種簡單的方法可以在退出 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 ignoreeofin的效果bash是相同的設置IGNOREEOF=10(反之亦然)。

ignoreeofshell 選項是一個 POSIX 選項,應該在所有類似 POSIX 的 shell 中都可用。

有關的:

引用自:https://unix.stackexchange.com/questions/512862