2009-01-06 10 views
9

पर प्रतिध्वनि रोकना बंद करें^सी को टर्मिनल पर वापस लेने के लिए मैं अपने बैश को कैसे कहूं?टर्मिनल

यदि मैं बस बैश सत्र में Ctrl + C दबाता हूं, तो मेरी टर्मिनल विंडो में कुछ भी मुद्रित नहीं होता है। लेकिन अगर मैं Ctrl + C के साथ कुछ प्रोग्राम समाप्त करता हूं, तो कभी-कभी^सी को मेरे टर्मिनल में प्रतिबिंबित और मुद्रित किया जाता है। क्या मेरे बैश को बताने का कोई तरीका है मैं वापस^सी गूंजना नहीं चाहता हूं?

उत्तर

4

अच्छा, मेरा मानना ​​है कि यह वास्तव में "देखभाल" -C को प्रतिबिंबित कर रहा है, CTRL-C वर्ण नहीं। इसके अलावा, यह वास्तव में tty चालक का एक कार्य है, शेल नहीं; ड्राइवर वास्तव में CTRL-C वर्ण को रोकता है, प्रक्रिया में SIGINT उत्पन्न करता है, और वर्णों को echos। यदि आपके सिस्टम पर ऐसा करने का कोई तरीका है (यह बहुत ओएस निर्भर होगा) इसे stty (1) मैन पेज या tty (4) ड्राइवर पृष्ठ में दस्तावेज किया जाएगा।

+0

धन्यवाद। स्टाइल कामों के साथ आउटपुट को बदलना क्योंकि मैं इसे ओएस एक्स पर चाहता था, मेरे पास अभी भी लिनक्स पर कुछ याद आ रही है। – zgoda

+0

ठीक है, मैंने कहा कि यह भारी प्रणाली निर्भर था। कम से कम अब आप सही जगह पर देख रहे हैं। –

15

लिनक्स के तहत:

stty

-ctlecho

(संकेत के लिए चार्ली को रंगमंच की सामग्री - मैं तो बस चला गया और यह देखा)

+2

या -echoctl क्योंकि जो सिर्फ * एक * ध्वज चाहता है। –

+1

ठीक है, मेरे लिनक्स बॉक्स (उबंटू 8.10) पर यह सिर्फ "^ सी" से आउटपुट को कुछ अन्य वर्णों में बदल देता है, जो स्पष्ट रूप से टर्मिनल एन्कोडिंग पर निर्भर करता है। ओएस एक्स बॉक्स पर, मैनपेज का कहना है कि यह सीटीआरएल-कुछ "स्वयं के रूप में" गूंज जाएगा और उम्मीद के अनुसार काम करेगा। – zgoda

0

आप सकता है जाल SIGINT ... एक समारोह में रखो अपने .bashrc या .profile। यहां सिगिन पर मेरा जाल है:

            
 
Trap2() (Tred "%6s–<Interrupt>–\n" ''; return 202); trap Trap2 SIGINT
जहां ट्रेड एक ऐसा कार्य है जो लाल पाठ को प्रिंट करता है। यदि आप कुछ भी प्रदर्शित नहीं करना चाहते हैं, तो इसका उपयोग करें:
            
 
Trap2() (return); trap Trap2 SIGINT
चीयर्स!

- Aesthir