Na moim hoście Linux Ctrl+ Cnie wydaje się działać i nie wiem, jak to zrobić. Używam Ubuntu 10.04 z bash 4.1.5 (1) i pracuję w terminalu Gnome.
Kiedy nacisnąłem Ctrl+ Cpodczas działania tego skryptu, nie spowodowało to jego zamknięcia.
#!/bin/bash
for i in `seq 500`
do
ps -e > /dev/null
echo $i
done
ubuntu
keyboard-shortcuts
signals
gnome-terminal
Ankur Agarwal
źródło
źródło
stty -a
wyjście zawieraintr=^C
? Jak uruchomić skrypt?Odpowiedzi:
Spróbuj to zrobić
i sprawdź, czy to rozwiązuje problem, sprawdź również, czy intr jest poprawnie ustawiony za pomocą
Jeśli okaże się, że
intr
jest ustawiony na coś innego niż ^ C, możesz to naprawić, wpisującźródło
Ponieważ wygląda to na uszkodzoną
gnome-terminal
konfigurację, możesz spróbować pozwolić mu przywrócić ustawienia domyślne za pomocą(Musisz ponownie uruchomić terminal, aby zobaczyć efekty.)
Jeśli po tym wszystko jest w porządku, zrób to
rm -rf .gconf/apps/gnome-terminal-BROKEN
.źródło
Domyślne ustawienia w
gnome-terminal
wiążą klawiszeCtrl-C
iCtrl-V
, aby emulować zachowanie systemu Windows do kopiowania i wklejania. Miała to być funkcja, a nie błąd :)Aby to wyłączyć, na terminalu gnome
Menubar -> Edit -> Keyboard Shortcuts
New Accelerator...
.Disabled
teraz pojawiają się w kolumnie Klucz skrótu.Zauważ, że ta zmiana będzie natychmiast obowiązywać na wszystkich terminalach gnome.
Wskazówka:
gnome-terminal --show-menubar
zmusi gnome-terminal do wyświetlenia paska menu, jeśli nie jest pokazany.źródło
Zgaduję tutaj: Ctrl-C działa, ale ponieważ
ps -e
uruchomienie go w stosunku do reszty skryptu zajmuje dużo czasu, wystarczy, że wyślesz SIGINT do procesu „ps”. „ps” kończy działanie, a skrypt rozpoczyna od kolejnej iteracji poprzez kod pętli.Zrób a
sleep 10
w oknie bash, gdy jest uruchomione, wciśnij klawisz C i wciśnij klawisz Control. Sprawdź, czy to działa. Jeśli tak, uruchom oryginalny skrypt i naciśnij C-Control kilka razy. Wcześniej czy później będziesz mieć szczęście, a proces bash, który interpretuje skrypt, dostanie SIGINT.źródło