На моем Linux-хосте Ctrl+ Cне работает, и я не знаю, как это сделать. Я использую Ubuntu 10.04 с bash 4.1.5 (1) и работаю в Gnome-терминале.
Когда я нажимал Ctrl+ Cво время работы этого скрипта, он не вызывал его выхода.
#!/bin/bash
for i in `seq 500`
do
ps -e > /dev/null
echo $i
done
ubuntu
keyboard-shortcuts
signals
gnome-terminal
Анкур Агарвал
источник
источник
stty -a
выходintr=^C
? Как вы запускаете скрипт?Ответы:
Попробуй сделать это
и посмотрите, решит ли это проблему, также проверьте, правильно ли задан intr, используя
Если вы обнаружите, что
intr
установлено что-то отличное от ^ C, то вы также можете исправить это, набрависточник
Поскольку он выглядит как неработающая
gnome-terminal
конфигурация, вы можете попытаться позволить ему восстановить настройки по умолчанию, используя(Вам нужно будет перезапустить терминал, чтобы увидеть эффекты.)
Если все в порядке после этого, сделайте
rm -rf .gconf/apps/gnome-terminal-BROKEN
.источник
Настройки по умолчанию в
gnome-terminal
СвязываетCtrl-C
иCtrl-V
ключи , чтобы эмулировать поведение копирования и вставки из Windows. Это должна была быть функция, а не ошибка :)Чтобы отключить это, на терминале gnome,
Menubar -> Edit -> Keyboard Shortcuts
New Accelerator...
.Disabled
теперь отображаются в столбце «Сочетание клавиш».Обратите внимание, что это изменение вступит в силу немедленно на всех терминалах gnome.
Совет:
gnome-terminal --show-menubar
заставит gnome-терминал отображать меню, если оно не отображается.источник
Я собираюсь сделать предположение здесь: Ctrl-C работает, но, поскольку выполнение
ps -e
занимает много времени относительно остальной части скрипта, все, что вы делаете, это отправляете SIGINT процессу "ps". «ps» завершается, и сценарий запускает еще одну итерацию по циклическому коду.Сделайте
sleep 10
в своем окне bash, пока оно работает, управляйте им. Посмотри, работает ли это. Если это так, запустите ваш оригинальный скрипт и управляйте им C несколько раз. Рано или поздно вам повезет, и процесс bash, который интерпретирует скрипт, получит SIGINT.источник