cara membatalkan "stty intr ^ M"


1

Pada Unix bash, ketika saya menjalankan stty intr ^M(^ M adalah Control-M) saya secara efektif memblokir diri saya dari menjalankan perintah apa pun. Setiap kali saya menekan tombol "kembali", saya mengirim sinyal interupsi ke shell dan perintah saya tidak pernah dijalankan. Misalkan saya punya ini di profil saya (saya tidak benar-benar ..); bagaimana saya bisa keluar dari lubang ini dari sesi bash dengan ^ M diatur untuk memicu sinyal interupsi?

Chris

Jawaban:


3

bash memiliki kedua ^ M dan ^ J terikat accept-linesecara default, sehingga Anda dapat menggunakan keduanya.


1
Begitu stty intr ^c^jberhasil. Anda juga dapat menggunakan ^vuntuk 'melarikan diri' ^m, jadi stty intr ^c^v^jberfungsi. Satu-satunya keanehan di sana adalah bahwa ^jdan ^vdan ^mharus menjadi kode kunci kontrol; yang ^cdapat menjadi kontrol kode-kunci atau dua karakter, sisipan dan v.
Jonathan Leffler

2

Secara umum (yaitu jika hal-hal bahkan lebih kacau dari ini dan Anda tidak tahu bagaimana cara memperbaikinya), Anda dapat lari sttydari tty lain menggunakan

stty sane < /dev/whatever
stty intr ^c < /dev/whatever

Jika Anda tidak yakin tty mana yang memiliki pengaturan yang kacau, gunakan whoatau psuntuk mencari tahu tty apa yang Anda gunakan, dan stty < /dev/whatevermasing - masing secara bergantian sampai Anda menemukan yang salah.


0

Saya akan menyarankan stty sane ^J, tapi itu tidak mengatur ulang interupsi. Anda harus melakukan sesuatu seperti ini:

$ stty intr ^C^J

The ^Cberdiri untuk Control-C. Anda biasanya bisa mendapatkannya dengan menekan Control-V / Control-C.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.