Bash Scripting – Pilih Loop Dijelaskan Dengan Contoh

Kita telah melihat tentang bash for loop, while loop, dan hingga loop di artikel sebelumnya dengan contoh detail. Bash menawarkan satu lagi jenis loop yang disebut loop pilih, yang memungkinkan Anda membuat skrip berbasis menu.

Skrip berbasis menu adalah alternatif yang baik untuk skrip yang mengharuskan pengguna menyampaikan argumen untuk melakukan tindakan. Anda dapat menambahkan lebih banyak verbositas di menu Anda dan pengguna hanya perlu memilih opsi agar program melakukan tugasnya.

Lihat artikel komprehensif kami tentang for loop, while loop, dan hingga loop.
Bash Scripting – For Loop Dijelaskan Dengan ContohBash Scripting – Sementara Dan Sampai Loop Dijelaskan Dengan ContohContents
Bash Select Loop – SyntaxSelect Loop – ResponseSelect Loop – Setting Custom PromptMembuat Menu Sederhana Didorong Backup Dan Restore ScriptKesimpulanBash Select Loop – Syntax

Sintaks loop pilih sedikit mirip dengan sintaks for loop. Dalam for loop, setiap elemen akan diulang dan untuk setiap elemen, Anda akan menulis logika untuk memprosesnya. Tapi loop pilih akan secara otomatis mengubah daftar elemen menjadi menu bernomor.
xxpilih fav di ubuntu popos mint kubuntu do echo “Distribusi fav saya = ${fav}” done
Penjelasan:
Perulangan harus dimulai dengan kata kunci “pilih”.Setelah memilih kata kunci datang variabel yang akan menyimpan nilai yang Anda pilih dari menu. Dalam kasus saya, saya telah memberikan nama variabel sebagai “fav”. Setelah kata kunci in, Anda harus memberikan daftar elemen. Elemen-elemen ini akan diubah menjadi menu. Logika Anda harus ditempatkan di dalam blok do dan done.
Sekarang, lanjutkan dan salin cuplikan di atas dan jalankan di terminal Anda. Ini akan membuat menu dan menunggu respons Anda.
Select Loop – Response

Mari kita pahami perilaku loop pilih saat Anda memberikan respons.

Loop pilih hanya akan menerima nomor menu sebagai argumen. Tergantung pada nomor menu yang Anda pilih, nilai yang sesuai akan disimpan dalam variabel (fav). Nomor dari opsi yang Anda pilih akan disimpan dalam variabel “REPLY”.

Periksa kode berikut. Saya telah memilih pilihan 2.

$ pilih fav di ubuntu popos mint kubuntu do echo "My fav distribution = ${fav}" done 1) ubuntu 2) popos 3) mint 4) kubuntu #? 2Distribusi favorit saya = popos #? 

Loop pilih tidak akan berhenti sampai Anda membatalkannya atau menggunakan pernyataan break untuk keluar dari loop dalam skrip Anda. Saya telah menggunakan pernyataan break setelah logika saya mengalir sehingga loop akan dihentikan hanya dengan satu pilihan.

Pernyataan break keluar dari loop setelah dipanggil sehingga setiap operasi yang tertunda akan dilewati dalam loop. Kode berikut menjelaskan penggunaan pernyataan break.

select fav di ubuntu popos mint kubuntu do echo "My fav distribution = ${fav}" break done

Perilaku default dari loop pilih adalah ketika pengguna tidak memberikan input, itu akan lagi meminta input tanpa keluar dari loop.
Select Loop – Menyetel Custom Prompt

Secara default, loop pilih akan menggunakan “#?” sebagai prompt. Anda juga dapat mengatur prompt kustom sesuai keinginan Anda dengan mengatur variabel lingkungan PS3.

PS3="Pilih distribusi favorit Anda :: " pilih fav di ubuntu popos mint kubuntu; do echo "Distribusi fav saya = ${fav}" break done

Terkait Baca:
Cara Menyesuaikan Bash Prompt Di LinuxMembuat Skrip Pencadangan dan Pemulihan Berbasis Menu Sederhana

Sampai sekarang semua yang telah kita lihat adalah tentang sintaks loop pilih dan perilakunya. Mari kita buat skrip backup dan restore sederhana dengan pendekatan berbasis menu.

Lihat kode di bawah ini. Dua fungsi, backup() yang akan mengambil backup, dan restore() yang akan mengembalikan file ke source.

Saya hanya mengambil backup hanya untuk file .bashrc untuk demonstrasi tetapi Anda dapat mengubah skrip ini sesuai kebutuhan Anda. Dengan menggunakan pernyataan bersyarat, saya memvalidasi input dan memicu masing-masing function.

#!/usr/bin/env bash SOURCE="/home/${USER}/.bashrc" DESTINATION="/home/${USER} /Documents/" # Fungsi ini akan mengambil fungsi backup backup(){ rsync -a --progress --delete-before --info=progress2 ${SOURCE} ${DESTINATION} } # Fungsi ini akan mengembalikan fungsi backup restore( ){ rsync -a --progress --delete-before --info=progress2 ${DESTINATION} ${SOURCE} } PS3="Pilih CADANGAN atau RESTORE :: " pilih opsi dalam pemulihan cadangan lakukan jika [[ ${option } = "backup" ]];lalu backup elif [[ ${option} = "restore" ]];lalu restore fi break done

Setelah Anda menjalankan skrip ini, itu hanya akan meminta dua opsi seperti yang ditunjukkan pada gambar di bawah ini dan berdasarkan Anda seleksi tindakan yang akan dilakukan.
Conclusion

Dalam artikel ini saya telah menunjukkan kepada Anda apa pernyataan pilih di bash itu dan bagaimana menggunakan loop pilih Bash untuk membuat skrip berbasis menu. Beri tahu kami jika Anda telah menerapkan skrip keren dengan pendekatan berbasis menu melalui bagian komentar.