No meu host Linux, o Ctrl+ Cparece não funcionar e não sei como proceder para fazê-lo funcionar. Estou usando o Ubuntu 10.04 com bash 4.1.5 (1) e trabalhando no terminal Gnome.
Quando pressionei Ctrl+ Cenquanto este script estava sendo executado, ele não foi fechado.
#!/bin/bash
for i in `seq 500`
do
ps -e > /dev/null
echo $i
done
ubuntu
keyboard-shortcuts
signals
gnome-terminal
Ankur Agarwal
fonte
fonte
stty -a
saída contémintr=^C
? Como você executa o script?Respostas:
Tente fazer isso
e veja se resolve o problema, verifique também se o intr está definido corretamente usando
Se você achar que
intr
está definido como algo diferente de ^ C, também poderá corrigi-lo digitandofonte
Como se parece com uma
gnome-terminal
configuração quebrada , você pode tentar restaurar os padrões usando(Você precisará reiniciar o terminal para ver os efeitos.)
Se tudo estiver bem depois disso, faça a
rm -rf .gconf/apps/gnome-terminal-BROKEN
.fonte
As configurações padrão em
gnome-terminal
vinculam as teclasCtrl-C
eCtrl-V
para emular o comportamento de copiar e colar do Windows. Era para ser um recurso, não um bug :)Para desativar isso, no terminal gnome,
Menubar -> Edit -> Keyboard Shortcuts
New Accelerator...
.Disabled
agora aparece na coluna Tecla de atalho.Observe que essa alteração será efetivada imediatamente em todos os terminais gnome.
Dica:
gnome-terminal --show-menubar
forçará o gnome-terminal a mostrar a barra de menus, se não for mostrada.fonte
Vou adivinhar aqui: Ctrl-C funciona, mas como
ps -e
leva muito tempo para ser executado em relação ao restante do script, tudo o que você faz é enviar o SIGINT para o processo "ps". "ps" sai e o script começa com outra iteração através do código do loop.Faça um
sleep 10
na sua janela do bash, enquanto ele é executado, controle-C. Veja se isso funciona. Caso isso aconteça, execute o script original e controle-C várias vezes. Mais cedo ou mais tarde, você terá sorte e o processo bash que interpreta o script obterá o SIGINT.fonte