#!/bin/bash
# Bash Menu Script Example
PS3='Please enter your choice: '
options=("Option 1" "Option 2" "Option 3" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Option 1")
echo "you chose choice 1"
;;
"Option 2")
echo "you chose choice 2"
;;
"Option 3")
echo "you chose choice $REPLY which is $opt"
;;
"Quit")
break
;;
*) echo "invalid option $REPLY";;
esac
done
Tambahkan breakpernyataan di mana pun Anda membutuhkan selectloop untuk keluar. Jika a breaktidak dilakukan, selectstatemen akan berulang dan menu ditampilkan kembali.
Dalam opsi ketiga, saya menyertakan variabel yang ditetapkan oleh selectpernyataan untuk menunjukkan bahwa Anda memiliki akses ke nilai-nilai itu. Jika Anda memilihnya, itu akan menampilkan:
you chose choice 3 which is Option 3
Anda bisa melihat yang $REPLYberisi string yang Anda masukkan saat diminta. Ini digunakan sebagai indeks ke dalam array ${options[@]}seolah-olah array berdasarkan 1. Variabel $optberisi string dari indeks itu dalam array.
Perhatikan bahwa pilihannya bisa berupa daftar sederhana langsung dalam selectpernyataan seperti ini:
select opt in foo bar baz 'multi word choice'
tetapi Anda tidak dapat menempatkan daftar seperti itu dalam variabel skalar karena spasi di salah satu pilihan.
Anda juga dapat menggunakan penggumpalan file jika Anda memilih di antara file-file:
select file in *.tar.gz
seq 10 | fzf. Kekurangannya adalah bahwa fzf tidak diinstal secara default. Anda dapat menemukan fzf di sini: github.com/junegunn/fzf