Contoh Bash untuk "Tekan tombol apa saja untuk melanjutkan ..."
Dalam artikel ini, kami akan mengeksplorasi teknik untuk mendeteksi penekanan tombol dalam skrip Bash dan cara membuat skrip Anda menunggu input pengguna sebelum melanjutkan. Keterampilan ini sangat penting saat mengembangkan aplikasi shell interaktif yang memerlukan interaksi atau konfirmasi pengguna sebelum menjalankan tindakan tertentu.
AdvertisementDaftar IsiPengantar Deteksi Tekan Tombol di Bash Menggunakan Perintah `baca` Mendeteksi Penekanan Tombol Tertentu Mengimplementasikan Timeout Aplikasi Dunia Nyata dan Contoh 1. Pengantar Deteksi Tekan Tombol di Bash
Dalam dunia skrip shell, input pengguna adalah komponen penting yang memungkinkan pengguna berinteraksi dengan skrip Anda, menjadikannya lebih dinamis dan serbaguna. Bash menyediakan beberapa alat bawaan untuk menangani masukan pengguna, seperti perintah `baca`, yang akan kita bahas di bagian berikut.
2. Menggunakan Perintah `baca`
Perintah `baca` adalah alat Bash bawaan yang kuat yang memungkinkan Anda membaca baris input dari pengguna. Secara default, menunggu pengguna untuk menekan tombol Enter sebelum melanjutkan. Namun, Anda dapat mengonfigurasi perintah `baca` untuk mendeteksi penekanan tombol tunggal tanpa memerlukan tombol Enter.
Berikut adalah contoh penggunaan perintah `baca` untuk menunggu penekanan tombol tunggal:
#!/bin/bash echo "Tekan sembarang tombol untuk melanjutkan..." # -s: Jangan gema input yang berasal dari terminal # -n 1: Baca satu karakter baca -s -n 1 echo "Anda menekan tombol! Melanjutkan..."123456789#!/bin/bash echo"Tekan sembarang tombol untuk melanjutkan..." # -s: Jangan gema input yang berasal dari terminal# -n 1: Baca satu karakterbaca -s-n1 echo"Anda menekan tombol! Melanjutkan..."
Dalam contoh ini, perintah `baca` akan menunggu pengguna menekan tombol apa saja dan melanjutkan tanpa memerlukan tombol Enter.
3. Mendeteksi Penekanan Tombol Tertentu
Terkadang Anda mungkin ingin mendeteksi penekanan tombol tertentu dan menjalankan tindakan berbeda berdasarkan input. Anda dapat melakukannya dengan menggunakan pernyataan kasus yang dikombinasikan dengan perintah `baca`:
#!/bin/bash echo "Tekan `y` untuk melanjutkan atau `n` untuk keluar." # Tunggu hingga pengguna menekan tombol baca -s -n 1 kunci # Periksa tombol mana yang ditekan kasus $masukkan y|Y) echo "Anda menekan `y`. Melanjutkan..." ;; n|T) echo "Anda menekan `n`. Keluar..." keluar 1 ;; *) echo "Masukan salah. Silakan tekan `y` atau `n`." ;; esac1234567891011121314151617181920#!/bin/bash echo"Tekan `y` untuk melanjutkan atau `n` untuk keluar." # Tunggu pengguna menekan keyread-s-n1key # Periksa tombol mana yang ditekancase$key in y|Y) echo"Anda menekan `y`. Melanjutkan..." ;; n|N) echo"Anda menekan `n`. Keluar..." exit1 ;; *) gema"Input tidak valid. Silakan tekan `y` atau `n`." ;;esac
Dalam contoh ini, skrip akan menunggu pengguna untuk menekan `y` atau `n` dan menjalankan tindakan berbeda yang sesuai.
4. Mengimplementasikan Timeout
Jika Anda ingin skrip Anda berjalan secara otomatis setelah waktu yang ditentukan jika pengguna tidak menekan tombol, Anda dapat menggunakan opsi `-t` dengan perintah `baca`:
#!/bin/bash echo "Tekan sembarang tombol untuk melanjutkan atau tunggu 5 detik..." # -t 5: Batas waktu 5 detik baca -s -n 1 -t 5 jika [$? -eq 0 ]; Kemudian echo "Anda menekan tombol! Melanjutkan..." kalau tidak gema "Waktu habis tercapai. Melanjutkan..." fi123456789101112#!/bin/bash echo"Tekan sembarang tombol untuk melanjutkan atau tunggu 5 detik..." # -t 5: Batas waktu 5 detikbaca-s-n1-t5 if[$?-eq0];lalu echo"Anda menekan kunci! Melanjutkan..."else gema"Waktu habis tercapai. Melanjutkan..."fi
Dalam contoh ini, skrip akan menunggu pengguna menekan tombol atau secara otomatis melanjutkan setelah 5 detik.
5. Aplikasi dan Contoh Dunia Nyata
Mendeteksi penekanan tombol dalam skrip Bash berguna dalam berbagai skenario, seperti:
Membuat menu interaktif Menjeda eksekusi skrip untuk menampilkan informasi Memerlukan konfirmasi pengguna sebelum melakukan tindakan penting
Dengan memasukkan deteksi penekanan tombol ke dalam skrip Bash Anda, Anda dapat membuat lebih interaktif dan aplikasi ramah pengguna yang melayani berbagai kasus penggunaan. Berikut adalah beberapa contoh untuk menginspirasi Anda:
Contoh 1: Menu Interaktif u
#!/bin/bash fungsi display_menu() { echo "Silakan pilih salah satu opsi:" gema "1) Opsi 1" gema "2) Opsi 2" gema "3) Opsi 3" gema "q) Keluar" } sementara benar; Mengerjakan display_menu baca -s -n 1 kunci kasus $masukkan 1) gema "Anda memilih Opsi 1." ;; 2) gema "Anda memilih Opsi 2." ;; 3) gema "Anda memilih Opsi 3." ;; q|Q) gema "Keluar ..." keluar 0 ;; *) echo "Masukan tidak valid. Harap pilih opsi yang valid." ;; esac gema "" done12345678910111213141516171819202122232425262728293031323334#!/bin/bash functiondisplay_menu(){ echo"Silakan pilih salah satu opsi:" echo"1) Opsi 1" echo"2) Opsi 2" gema"3) Opsi 3"" echo"2) Opsi 2" gema"3) Opsi 3"" lakukan display_menu read-s-n1key case$key in 1) echo"Anda memilih Opsi 1." ;; 2) gema"Anda memilih Opsi 2". ;; 3) gema"Anda memilih Opsi 3". ;; q|Q) gema"Keluar..." keluar0 ;; *) gema"Input tidak valid. Harap pilih opsi yang valid." ;; esac echo""done
Contoh ini menunjukkan cara membuat menu interaktif yang merespons penekanan tombol tertentu.
Contoh 2: Menjeda Eksekusi Skrip
#!/bin/bash echo "Menjalankan langkah 1..." # Simulasikan proses yang berjalan lama tidur 1 echo "Langkah 1 selesai. Tekan sembarang tombol untuk melanjutkan ke langkah 2..." baca -s -n 1 gema "Menjalankan langkah 2..." # Simulasikan proses berjalan lama lainnya tidur 1 echo "Langkah 2 selesai. Skrip selesai."1234567891011121314#!/bin/bash echo"Melaksanakan langkah 1..."# Mensimulasikan proses yang berjalan lamasleep1 echo"Langkah 1 selesai. Tekan sembarang tombol untuk melanjutkan ke langkah 2... "read-s-n1 echo"Melaksanakan langkah 2..."# Simulasikan proses yang berjalan lama lainnyasleep1 echo"Langkah 2 selesai. Skrip selesai."
Dalam contoh ini, skrip menjeda eksekusi setelah menyelesaikan langkah 1, menunggu pengguna untuk tekan tombol sebelum melanjutkan ke langkah 2.
Contoh 3: Konfirmasi Pengguna Sebelum Tindakan Penting
#!/bin/bash echo "Skrip ini akan menghapus semua file di direktori saat ini. Apakah Anda yakin ingin melanjutkan? (y/t)" baca -s -n 1 kunci kasus $masukkan y|Y) gema "Menghapus semua file ..." rm -f ./* gema "File berhasil dihapus." ;; n|T) echo "Operasi dibatalkan. Tidak ada file yang dihapus." ;; *) echo "Masukan salah. Silakan tekan `y` atau `n`." ;; esac12345678910111213141516171819#!/bin/bash echo"Skrip ini akan menghapus semua file di direktori saat ini. Apakah Anda yakin ingin melanjutkan? (y/n)" read-s-n1key case$key in y|Y) echo"Menghapus semua file..." rm-f./* echo"File berhasil dihapus." ;; n|N) gema"Operasi dibatalkan. Tidak ada file yang dihapus." ;; *) gema"Input tidak valid. Silakan tekan `y` atau `n`." ;;esac
Contoh ini menunjukkan cara meminta konfirmasi pengguna sebelum melakukan tindakan penting, seperti menghapus file di direktori saat ini.
Conclusion
Mendeteksi penekanan tombol dan menunggu input pengguna adalah keterampilan penting saat membuat skrip Bash yang interaktif dan mudah digunakan. Dengan menggunakan perintah `baca` dan berbagai opsinya, Anda dapat mencapai kontrol tingkat tinggi atas aliran skrip Anda dan merespons input pengguna sesuai dengan itu. Pada artikel ini, kami telah menjelajahi cara menggunakan perintah `baca` untuk mendeteksi penekanan tombol tunggal, membedakan antara tombol tertentu, dan menerapkan batas waktu. Selain itu, kami telah memamerkan aplikasi dan contoh dunia nyata untuk menginspirasi Anda dalam membuat skrip Bash yang lebih interaktif dan dinamis. Dengan menguasai deteksi penekanan tombol di Bash, Anda akan dapat mengembangkan aplikasi shell yang serbaguna dan menarik yang memenuhi berbagai kasus penggunaan dan kebutuhan pengguna.
Referensi tecadmin.comArtikel Diperbarui pada: April 25, 2023
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani