2009-01-06 27 views
9

Bash'ımı terminale terminale geri söylememeyi nasıl söyleyebilirim?Yanıp sönme^C terminali

Yalnızca bash oturumunda Ctrl + C tuşlarına basarsam, terminal penceremde hiçbir şey yazdırılmaz. Fakat Ctrl + C ile bir programı sonlandırırsam, bazen^C, terminalimde yankılanır ve yazdırılır. Bash'ımı anlatmanın herhangi bir yolu var mı? Tekrar yankılanmak istemiyorum.

cevap

4

Eh, aslında "şapka" -C değil CTRL-C karakter yankılanan inanıyorum. Bunun dışında, bu aslında kabuk değil, tty sürücüsünün bir işlevidir; Sürücü aslında CTRL-C karakterini yakalar, işlem için bir SIGINT üretir ve karakterleri onaylar. Sisteminizde bunu yapmanın bir yolu varsa o stty (1) sayfasında açıklandığı veya tty (4) sürücü sayfa olacaktır (bu ağır OS bağımlı olacaktır).

Linux Altında
+0

teşekkür ederiz. OS X'de istediğim gibi çıktıyı stty ile değiştirmek, Linux'ta hala eksik bir şey var. – zgoda

+0

Çok, sisteme bağımlı olduğunu söyledim. En azından şimdi doğru yere bakıyorsun. –

15

:

stty

-ctlecho

-

+2

veya -echoctl çünkü kim sadece * bir * bayrak ister. –

+1

Eh, benim linux kutumda (Ubuntu 8.10), sadece terminal kodlamasına bağlı olarak "^ C" çıkışını başka bir karaktere (ler) değiştirir. OS X kutusunda, manpage, "kendileri gibi" bir CTRL-şeyini yankılandıracağını ve beklendiği gibi çalıştığını söylüyor. – zgoda

0

Sen tuzak SIGINT ... içine bir işlev koyun olabilir (ipucu için Charlie'ye sahne Sadece gitti ve baktım) senin .bashrc veya .profile. İşte benim tuzak SIGINT açıktır: TRED kırmızı metin yazdırır bir fonksiyondur

            
 
Trap2() (Tred "%6s–<Interrupt>–\n" ''; return 202); trap Trap2 SIGINT
. Hiçbir şey görüntülenmesini istemiyorsanız, şunu kullanın:
            
 
Trap2() (return); trap Trap2 SIGINT
Şerefe!

- Aesthir

İlgili konular