Di host Linux saya, Ctrl+ Csepertinya tidak berfungsi dan saya tidak tahu bagaimana melanjutkannya agar berfungsi. Saya menggunakan Ubuntu 10,04 dengan bash 4.1.5 (1), dan bekerja di terminal Gnome.
Ketika saya menekan Ctrl+ Cketika skrip ini berjalan, itu tidak menyebabkannya berhenti.
#!/bin/bash
for i in `seq 500`
do
ps -e > /dev/null
echo $i
done
ubuntu
keyboard-shortcuts
signals
gnome-terminal
Ankur Agarwal
sumber
sumber
stty -a
output mengandungintr=^C
? Bagaimana Anda menjalankan skrip?Jawaban:
Coba lakukan ini
dan lihat apakah itu memperbaiki masalah, juga periksa apakah intr diatur dengan benar menggunakan
Jika Anda menemukan bahwa
intr
ini diatur ke sesuatu yang berbeda dari ^ C, maka Anda juga dapat memperbaikinya dengan mengetiksumber
Karena terlihat seperti
gnome-terminal
konfigurasi yang rusak , Anda dapat mencoba membiarkannya memulihkan menggunakan default(Anda harus memulai ulang terminal untuk melihat efeknya.)
Jika semuanya baik-baik saja setelah itu, lakukan a
rm -rf .gconf/apps/gnome-terminal-BROKEN
.sumber
Pengaturan default di dalam
gnome-terminal
mengikatCtrl-C
danCtrl-V
kunci untuk meniru perilaku copy-and-paste Windows. Itu dimaksudkan untuk menjadi fitur bukan bug :)Untuk menonaktifkan ini, di terminal gnome,
Menubar -> Edit -> Keyboard Shortcuts
New Accelerator...
.Disabled
sekarang muncul di kolom Shortcut Key.Perhatikan bahwa perubahan ini akan segera efektif pada semua terminal gnome.
Tip:
gnome-terminal --show-menubar
akan memaksa gnome-terminal untuk menampilkan menu jika tidak ditampilkan.sumber
Saya akan menebak di sini: Ctrl-C tidak berfungsi, tetapi karena
ps -e
butuh waktu lama untuk menjalankan relatif terhadap sisa skrip, yang Anda lakukan hanyalah mengirim SIGINT ke proses "ps". "ps" keluar, dan skrip mengambil dengan iterasi lain melalui kode loop.Lakukan
sleep 10
di jendela bash Anda, saat dijalankan, kontrol-C-nya. Lihat apakah itu berhasil. Jika ya, jalankan skrip asli Anda, dan kontrol-C beberapa kali. Cepat atau lambat, Anda akan beruntung dan proses bash yang menginterpretasikan skrip akan mendapatkan SIGINT.sumber