2 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
如果你之后打印一些東西,你可以這樣做
fmt.Print("\r")
log.Println("Shutting down")
\r是回車符;它告訴您的終端模擬器在行首移動(dòng)光標(biāo)。這樣您就可以覆蓋^C終端上的 。

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果您將終端置于原始模式,您將直接獲得擊鍵并且 tty 不會(huì)解釋它們(并顯示 ^C)。
我不確定在 Go 中設(shè)置原始模式的最佳方法,但 golang.org/x/crypto/ssh/terminal 的 RawMode() 做到了。然后您必須啟用 INT 和 TERM 處理,否則您將收到 ^C 作為輸入,而不是將其作為中斷處理。
原始模式的解釋在這里:https : //unix.stackexchange.com/questions/21752/what-s-the-difference-between-a-raw-and-a-cooked-device-driver
類似的答案在這里:https : //superuser.com/questions/147013/how-to-disable-c-from-being-echoed-on-linux-on-ctrl-c
- 2 回答
- 0 關(guān)注
- 257 瀏覽
添加回答
舉報(bào)