Хватит выводить ^ C на терминал - PullRequest
9 голосов
/ 06 января 2009

Как мне сказать, чтобы мой bash не возвращал ^ C обратно в терминал?

Если я просто нажму Ctrl + C в сеансе bash, в моем окне терминала ничего не печатается. Но если я завершаю какую-либо программу с помощью Ctrl + C, иногда ^ C выводится и выводится в моем терминале. Есть ли способ сказать моему bash, что я вообще не хочу возвращать ^ C?

Ответы [ 3 ]

15 голосов
/ 06 января 2009

под Linux:

stty -ctlecho

(подсказывает Чарли подсказку - я просто пошел и посмотрел)

4 голосов
/ 06 января 2009

Ну, я считаю, что это на самом деле эхо "карета" -C, а не символа CTRL-C. Кроме этого, это на самом деле функция драйвера tty, а не оболочки; драйвер фактически перехватывает символ CTRL-C, генерирует SIGINT для процесса и выводит символы. Если есть способ сделать это в вашей системе (это будет сильно зависеть от ОС), это будет задокументировано в справочной странице stty (1) или в драйвере tty (4) стр.

0 голосов
/ 13 июля 2011

Вы можете перехватить sigint ... Поместите функцию в ваш .bashrc или .profile. Вот моя ловушка на сигинте:

Trap2 () ( Tred "%6s––\n" ''; return 202 ); trap Trap2 SIGINT
Где Tred - это функция, которая печатает красный текст. Если вы не хотите ничего отображать, используйте это:
Trap2 () ( return ); trap Trap2 SIGINT
Ура!

- Эстир
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...