Menüler

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.

eaydin@dixon ~/calisma/bash $ cat select.sh #!/bin/bash SECENEKLER="Disk-Durumu Yardim Cikis" select i in $SECENEKLER; do if [ "$i" = "Cikis" ]; then exit elif [ "$i" = "Yardim" ]; then echo "Yardim menusu" elif [ "$i" = "Disk-Durumu" ]; then df -h else echo "Secenek Anlasilmadi?" fi done

 

eaydin@dixon ~/calisma/bash $ ./select.sh 1) Disk-Durumu 2) Yardim 3) Cikis #? 1 Filesystem Size Used Avail Use% Mounted on /dev/sda3 346G 32G 296G 10% / none 4,0K 0 4,0K 0% /sys/fs/cgroup udev 3,8G 4,0K 3,8G 1% /dev tmpfs 777M 1,5M 775M 1% /run none 5,0M 0 5,0M 0% /run/lock none 3,8G 114M 3,7G 3% /run/shm none 100M 20K 100M 1% /run/user /dev/sda6 374G 150G 225G 40% /media/backups #? 3 eaydin@dixon ~/calisma/bash $

 

whiptail

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" 10 50

 

Komutun sonundaki rakamlar, pencerenin yüksekliğini ve genişliğini belirtir.

Örneğin Ok yerine Tamam yazmasını sağlayabiirdik.

 

yes/no

Programınızın basit Evet/Hayır soruları sormasını sağlayabilirsiniz.

 

inputbox

Kullanıcıdan girdi almak için inputbox kullanabilirsiniz.

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.

 

checklist

 

radiolist