Bash tunggu penekanan tombol

Bash Wait Keypress



Perintah `read` digunakan untuk mengambil input pengguna dalam skrip bash. Kita dapat mengambil input dalam skrip bash dengan menggunakan berbagai jenis opsi dengan perintah read. Terkadang kita perlu menulis skrip sedemikian rupa sehingga skrip akan berjalan sampai tombol tertentu ditekan atau skrip tertentu akan dijalankan berdasarkan tombol tertentu atau program akan menunggu selama waktu tertentu hingga tombol apa pun ditekan. Bagaimana Anda dapat menulis skrip bash untuk menunggu kunci tertentu atau kunci apa saja untuk beberapa tugas ditunjukkan dalam tutorial ini dengan menggunakan contoh yang berbeda.

Contoh 1:

Buat file bash dengan skrip berikut. Ketika Anda akan menjalankan skrip, itu akan berlanjut hingga pengguna menekan tombol apa saja. Script akan menunggu input pengguna setiap 3 detik dan jika pengguna tidak menekan tombol apa pun maka akan mencetak pesan, menunggu penekanan tombol .







#!/bin/bash
dibuang 'Tekan tombol apa saja untuk melanjutkan'
ketika [ benar ];melakukan
Baca -T 3 -n 1
jika [ $?=0 ];kemudian
keluar;
lain
dibuang 'menunggu penekanan tombol'
menjadi
selesai

Jalankan skrip.



$pestakunci1.sh

Keluaran:







Contoh #2:

Buat file bash dengan skrip berikut. Perulangan while tak terbatas digunakan dalam contoh ini yang akan berhenti ketika pengguna menekan 'q'. Jika pengguna menekan sembarang tombol tanpa 'q' maka nilai variabel penghitung akan bertambah 1 dan mencetak nilainya.

#!/bin/bash
dibuang 'Tekan 'q' untuk keluar'
menghitung=0
ketika:;melakukan
Baca -n 1ke<&1
jika [[ $ k= q]];kemudian
printf ' Keluar dari program '
merusak
lain
((menghitung=$hitung+1))
printf ' Ulangi untuk$hitungwaktu '
dibuang 'Tekan 'q' untuk keluar'
menjadi
selesai

Jalankan skrip.



$pestakunci2.sh

Keluaran:

Contoh #3:

Buat file bash dengan skrip berikut yang akan melakukan berbagai jenis tugas berdasarkan tombol yang ditekan oleh pengguna. Jika pengguna menekan '1' maka itu akan menambahkan dua argumen baris perintah dan mencetak. Jika pengguna menekan '2' maka itu akan mengurangi dua argumen baris perintah dan mencetak. Script akan berjalan terus menerus sampai pengguna menekan '3'.

#!/bin/bash
v1=$1
v2=$2
ketika:
melakukan
dibuang '1. Tambahan'
dibuang '2. Pengurangan'
dibuang '3. Berhenti'
dibuang -n 'Tipe 1 atau 2 atau 3 :'
Baca -n 1 -T limabelaske
printf ' '
kasus $ a di dalam
1* ) dibuang '$v1+$v2=$(($v1+$v2)) ';;

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

3* ) keluar 0;;


* ) dibuang 'Coba lagi.';;
esac
selesai

Jalankan skrip dengan dua nilai argumen numerik.

$pestakunci3.sh35 limabelas

Keluaran:

Contoh#4:

Buat file bash dengan skrip berikut. Script akan berhenti ketika pengguna menekan tombol ESC. Script ini akan mencetak tombol yang ditekan oleh pengguna sampai tombol ESC ditekan.

#!/bin/bash
masukan pengguna=''
dibuang 'Tekan tombol ESC untuk keluar'
# membaca satu karakter
ketika Baca -R -n1kunci
melakukan
# jika masukan == kunci ESC
jika [[ $kunci== $'Dan' ]];
kemudian
merusak;
menjadi
# Tambahkan kunci ke variabel yang ditekan oleh pengguna.
masukan pengguna+=$kunci
selesai
printf ' Anda telah mengetik:$masukan pengguna '

Jalankan skrip.

$pestakunci4.sh

Keluaran:

Contoh#5:

Buat file bash dengan kode berikut yang akan menunggu kunci ENTER untuk mengakhiri skrip. Script akan mengambil nama server sebagai input dan akan mencoba melakukan ping ke server setiap 2 detik. Jika perintah ping mendapat respons dari server maka skrip akan dihentikan dengan menampilkan output jika tidak, ia akan menunggu respons pengguna atau tombol ENTER dengan mencetak pesan, Mencoba terhubung dengan….

#!/bin/bash
dibuang 'Masukkan alamat server yang ingin Anda ping'
Bacaserver
ketika ! ping -C 1 -n -DI DALAM 2 $server
melakukan
dibuang 'Mencoba terhubung dengan$server'
dibuang 'Tekan [ENTER] untuk mengakhiri'
Baca -S -N 1 -T 1kunci
jika [[ $kunci== $' x0a' ]];# jika input == tombol ENTER
kemudian
keluar 0
menjadi
selesai
printf '%S ' '$serversedang berlari'

Jalankan skrip.

$pestakunci5.sh

Keluaran:

Kesimpulan:

Tutorial ini menunjukkan bagaimana Anda dapat menulis skrip bash dengan berbagai cara yang akan menunggu input pengguna untuk melakukan tugas tertentu atau menghentikan skrip. Harapannya, setelah mempraktikkan contoh di atas, Anda akan dapat menulis skrip sedemikian rupa sehingga dapat menunggu penekanan tombol apa pun dan melakukan tugas tertentu berdasarkan tombol yang ditekan oleh pengguna.