Bash tunggu tekan kekunci

Bash Wait Keypress

Perintah `read` digunakan untuk mengambil input pengguna dalam skrip bash. Kita dapat mengambil masukan dalam skrip bash dengan menggunakan berbagai jenis pilihan dengan perintah baca. Kadang-kadang kita perlu menulis skrip sedemikian rupa sehingga skrip akan berjalan sehingga kekunci tertentu ditekan atau skrip tertentu akan dijalankan berdasarkan kekunci tertentu atau program akan menunggu jumlah waktu tertentu hingga ada kekunci ditekan. Bagaimana anda boleh menulis skrip bash untuk menunggu kunci tertentu atau kunci untuk beberapa tugas ditunjukkan dalam tutorial ini dengan menggunakan contoh yang berbeza.

Contoh # 1:

Buat fail bash dengan skrip berikut. Apabila anda menjalankan skrip, ia akan berterusan sehingga pengguna menekan sebarang kekunci. Skrip akan menunggu input pengguna dalam setiap 3 saat dan jika pengguna tidak menekan sebarang kekunci maka ia akan mencetak mesej, menunggu penekanan kekunci .



#! / bin / bash
membuang 'Tekan mana-mana butang untuk meneruskan'
sementara [ benar ];buat
membaca -t 3 -n 1
sekiranya [ $?=0 ];kemudian
jalan keluar;
yang lain
membuang 'menunggu penekanan kekunci'
menjadi
selesai

Jalankan skrip.



$bashkunci1.sh

Pengeluaran:



Contoh # 2:

Buat fail bash dengan skrip berikut. Gelung sementara tanpa batas digunakan dalam contoh ini yang akan berakhir apabila pengguna akan menekan ‘q’. Sekiranya pengguna menekan sebarang kekunci tanpa ‘q’ maka nilai pemboleh ubah pembilang akan dinaikkan sebanyak 1 dan mencetak nilainya.

#! / bin / bash
membuang 'Tekan' q 'untuk keluar'
mengira=0
sementara:;buat
membaca -n 1ke<&1
sekiranya [[ $ k= q]];kemudian
printf ' nBerhenti dari program n'
rehat
yang lain
((mengira=kiraan $+1))
printf ' nMenetapkan untukkiraan $kali n'
membuang 'Tekan' q 'untuk keluar'
menjadi
selesai

Jalankan skrip.



$bashkunci2.sh

Pengeluaran:

Contoh # 3:

Buat fail bash dengan skrip berikut yang akan melakukan pelbagai jenis tugas berdasarkan kekunci yang ditekan oleh pengguna. Sekiranya pengguna menekan ‘1’ maka ia akan menambahkan dua argumen baris perintah dan mencetak. Sekiranya pengguna menekan ‘2’ maka ia akan mengurangkan dua argumen baris perintah dan mencetak. Skrip akan berjalan berterusan sehingga pengguna menekan ‘3’.

#! / bin / bash
v1=$ 1
v2=$ 2
sementara:
buat
membuang '1. Penambahan '
membuang '2. Penolakan '
membuang '3. Keluar '
membuang -n 'Jenis 1 atau 2 atau 3:'
membaca -n 1 -t lima belaske
printf ' n'
kes $ a dalam
1* ) membuang '$ v1+$ v2=$ (($ v1 + $ v2)) ';;

2* ) membuang '$ v1-$ v2=$ (($ v1- $ v2)) ';;

3* ) jalan keluar 0;;


* ) membuang 'Cuba lagi.';;
esac
selesai

Jalankan skrip dengan dua nilai argumen numerik.

$bashkunci3.sh35 lima belas

Pengeluaran:

Contoh # 4:

Buat fail bash dengan skrip berikut. Skrip akan berakhir apabila pengguna menekan kekunci ESC. Skrip ini akan mencetak kekunci yang ditekan oleh pengguna sehingga kekunci ESC ditekan.

#! / bin / bash
input pengguna=''
membuang 'Tekan kekunci ESC untuk berhenti'
# baca satu watak
sementara membaca -r -n1kunci
buat
# jika input == kekunci ESC
sekiranya [[ kunci $== $' Dan' ]];
kemudian
rehat;
menjadi
# Tambahkan kunci ke pemboleh ubah yang ditekan oleh pengguna.
input pengguna + =kunci $
selesai
printf ' nAnda telah menaip:$ userinput n'

Jalankan skrip.

$bashkunci4.sh

Pengeluaran:

Contoh # 5:

Buat fail bash dengan kod berikut yang akan menunggu kunci ENTER untuk menghentikan skrip. Skrip akan mengambil nama pelayan sebagai input dan akan cuba melakukan ping pelayan dalam setiap 2 saat. Sekiranya arahan ping mendapat tindak balas dari pelayan maka ia akan menghentikan skrip dengan memaparkan output jika tidak, ia akan menunggu tindak balas pengguna atau kunci ENTER dengan mencetak mesej, Mencuba untuk menyambung dengan….

#! / bin / bash
membuang 'Masukkan alamat pelayan yang ingin anda ping'
membacapelayan
sementara ! ping -c 1 -n -IN 2 pelayan $
buat
membuang 'Cuba berhubung denganpelayan $'
membuang 'Tekan [ENTER] untuk menamatkan'
membaca -s -N 1 -t 1kunci
sekiranya [[ kunci $== $' x0a' ]];# jika input == kekunci ENTER
kemudian
jalan keluar 0
menjadi
selesai
printf '% s n' 'pelayan $adalah berlari'

Jalankan skrip.

$bashkunci5.sh

Pengeluaran:

Kesimpulan:

Tutorial ini menunjukkan bagaimana anda dapat menulis skrip bash dengan pelbagai cara yang akan menunggu input pengguna untuk melakukan tugas tertentu atau menghentikan skrip. Harap, setelah mengamalkan contoh-contoh di atas, anda akan dapat menulis skrip sedemikian rupa sehingga dapat menunggu penekanan kekunci dan melakukan tugas tertentu berdasarkan kekunci yang ditekan oleh pengguna.