Bash
Ctrl-C (SIGINT) 是否會阻止顯示輸出,即使有程序嘗試輸出它
我有一個 bash 腳本做錯了事。所以我按下 Ctrl-C 來停止它。
現在是我目前在終端上看到的輸出,所有已執行的程序產生的輸出。即使想要輸出某些內容的程序已經執行/完成了它正在做的事情,Ctrl-C 是否也會阻止列印輸出。
所以,我這樣做:
for i in *; do rm -vf $i; done
我現在可以確定
removed 'file'
我螢幕上的所有消息都是已刪除的消息,並且沒有其他消息被刪除嗎?也許相關資訊:我通過 ssh 在螢幕會話中工作。
基本上是的。
在 shell 程序擷取到您的
Ctrl-C
中斷後,它會停止它。但是有一些警告,例如在
for
循環中可以有一個在後台執行的 cmd。另外,有些 cmd 執行得如此之快,以至於您無法從 shell(尤其是通過遠端連接!)獲得快速響應,或者當**它使用 Ctrl-C 實際收到您的“中斷”時。