Yazdığınız programların kullanıcı ile etkileşimini sağlayan çeşitli menüler oluşturmak isteyebilirsiniz. Aşağıda iki yöntemini sunacağız.
select
En temel yöntem select komutunu kullanmaktır. for loop kullanır gibi kullanıcı etkileşimi oluşturmanızı sağlar. Temel yapsını paylaşıyoruz. Bunun üzerine kendi programınızı geliştirip fonksiyonlarla süsleyebilirsiniz.
whiptail başlı başına incelenmesi gereken ve kompleks menüler sunmanızı sağlayan bir programdır. Burada temel olarak nasıl mesajlar sunabileceğinizin üzerinden geçeceğiz.
msgbox
Aşağıdaki gibi bir komut ile görsel bir uyarı sağlayabilirsiniz.
whiptail--msgbox"Bu bir uyari mesaji"1050
Komutun sonundaki rakamlar, pencerenin yüksekliğini ve genişliğini belirtir.
Örneğin Ok yerine Tamam yazmasını sağlayabiirdik.
whiptail--msgbox"Bu bir uyari mesaji"1050--ok-button="Tamam"
yes/no
Programınızın basit Evet/Hayır soruları sormasını sağlayabilirsiniz.
Yukarıdaki program, inputbox ile sonuç dinler, eğer "Tamam" seçeneği işaretlenmiş, ve YENI_HOSTNAME değeri boş değilse hostname komutunu kullanarak bilgisayar adını değiştirir, aksi taktirde işlemi iptal eder. Programın girdi kutucuğunun öntanımlı değeri olarak mevcut hostname'i kullandığı görülebilir.
menu
Aşağıdaki yöntemle kullanıcılarınıza bir menü sunabilirsiniz.
#!/bin/bashSECIM=$(whiptail--title"Programlama Menüsü" \--menu "Bir dil seçin"17500 \"Python""Guido van Rossum" \"C""Dennis M. Ritchie" \"Perl""Larry Wall" \"PHP""Rasmus Lerdorf"3>&11>&22>&3)if [ $? =0 ] && [ !-z $SECIM ]; thenecho"$SECIM dilini seçtiniz"elseecho"Dil seçmediniz"fi
checklist
#!/bin/bashSECIM=$(whiptail--title"Programlama Menüsü"--checklist \"Kullandığınız Dilleri Seçin"10605 \"Python""Guido van Rossum"ON \"C""Dennis M. Ritchie"OFF \"Perl""Larry Wall"OFF \"PHP""Rasmus Lerdorf"ON3>&11>&22>&3)if [ $? -eq0 ]; thenecho"Seçtiğiniz diller:"echo"$SECIM"elseecho"Dil seçmediniz"fi
radiolist
#!/bin/bashSECIM=$(whiptail--title"Programlama Menüsü"--radiolist \"Kullandığınız Dilleri Seçin"10605 \"Python""Guido van Rossum"OFF \"C""Dennis M. Ritchie"ON \"Perl""Larry Wall"OFF \"PHP""Rasmus Lerdorf"OFF3>&11>&22>&3)if [ $? -eq0 ]; thenecho"Seçtiğiniz diller:"echo"$SECIM"elseecho"Dil seçmediniz"fi