Bash
當 CTRL-C 不工作時如何在命令行中工作?
我正在努力在某個環境 shell 命令行(CentOS 7 / Windows 主機的 Vagrant 來賓)中不使用 CTRL+C。我在那裡使用 bash。作業系統似乎無關緊要。
範例執行
sleep 1000
並按 ctrl-c:$ sleep 1000 ^C^C^C
所以,它輸入 ^C 就是這樣。
^C
注定要中斷。$ stty -a intr = ^C; ...
如何讓它發揮作用?
在下面的文章中,我受到啟發來修復它,答案解釋了很多,但沒有給出如何使其工作的簡單答案。
我正在努力解決這似乎很簡單的事情。
正如我們如何在 bash 中將信號陷阱設置為 SIG_IGN 和 SIG_DFL 中所述?簡單的解決方案是:
trap - INT
例如,只需將此程式碼添加到
~/.bashrc
bash 中。我決定不找到原因的根源,而只是解決它。
另一個有趣的文章: 刪除 ^C when CTRL+C
這聽起來可能是一個鍵映射問題。
在 shell 提示符下,鍵入:
stty sane
然後嘗試使用 CTRL-C 停止命令。如果它仍然不起作用,請添加以下輸出:
stty -a
你的問題。該
stty -a
命令將列出您目前的終端線路設置。感興趣的項目稱為intr
。如果intr
設置不正確,CTRL-C 將不起作用。如果
intr
設置不正確,您可以嘗試使用以下方法重置它:stty intr CTRL-V-C
這意味著您鍵入
stty intr
,然後輸入一個空格,然後按住 CTRL 鍵並按下v
,然後c
在它們之間沒有空格或其他字元。之後,嘗試再次使用 CTRL-C 停止命令並查看結果。