- Linux shell script, whiptail ve Zenity kütüphanesi ile yazılan, basit TO DO LIST programıdır. Programın YouTube videosu ile açıklanmış hali linktedir.
- GNU LINUX'da
ctrl+alt+tile terminali açabilirsiniz. apt-get install whiptailkomutu ile Whiptail'i çalışma ortamınıza kurabilirsiniz.sudo apt-get install -y zenitykomutu ile Zenity'i çalışma ortamınıza kurabilirsiniz.- Projede gerekli kütüphaneleri indirdikten sonra proje dosyalarına erişmek ve bunları yerel bilgisayarınızda çalıştırmak için aşağıdaki adımı uygulayabilirsiniz:
- Deponun sağ üst kısmında
Kod, yazan yeşil butona tıkladıktan sonra ZIP İndir sekmesine tıklayıp yerel bilgisayarınıza proje kaynak kodlarını indirmiş olursunuz. - Dizinin kaynak kodunu açtıktan sonra, Dosyanıza
chmod +x ToDolist.shkomutu ile yürütme/çalıştırma yetkisi veripbash ToDoList.shkomutu ile çalıştırabilirsiniz.
Bir Shell Script dosyasında geliştirilmiş bir uygulamadır. Shell Script dosyası oluşturmak için
nano file_name.shkomutu ile Shell Script dosyanızı birnanoeditör ile oluşturup açıyoruz. Dosyanızın en başına#!/bin/bashyazınız. Daha sonra dosyanızachmod +x file_name.shkomutu ile yürütme yetkisi veriniz. Dosyanızıbash FileName.shkomutuyla çalıştırabilirsiniz. Shell Scripti etkileşimli hale getirmek ve daha anlaşılır tam ekran mesajlar görüntülemekisteriz.WhiptailveZenitykütüphanelerini kullanarak, kabuk komut dosyasındaki iletişim kutularını kullanarak çeşitli sorular sunmanıza veya mesajları görüntülemenize izin verecek programlardır.
📍 Dosyanızı Çalıştırdığınızda ilk önce karşınıza resimde görüldüğü gibi kimlik doğrulaması gelecektir. To Do List Shell Script doyamdali giriş bilgileri aşağıdaki gibidir.
username="ceyda" password="123456"
📍Hatalı giriş yapmanız durumunda aşağıdaki resimdeki uyarıyı göreceksiniz.
📍Doğru giriş yaptığınızda ise karşınıza whiptailile oluşturulan bir menü çıkacaktır. Menüde aşağı-yukarı yön tuşları ile seçiminizi belirtip enter tuşu ile seçebilirsiniz. Menüden çıkmak için sağ-sol yön tuşları ile cancelbutonunu seçebilirsiniz.
:round_pushpin:Menüdeki seçenekler şu şekildedir.
A. Yapılacak bir görev ekleyiniz. B. Yapılacaklari listeleyiniz. C. Şimdiye kadar yapılan görevleri listeleyiniz.
📍İlgili alanlar seçildiğinde gerekli fonksiyonlar çalışır. Menü ekranının görüntüsü aşağıdaki gibidir.
📍A. seçeneğini seçerseniz Görev durumu default olrakFALSE olarak tanımlanan sonrasında görevinize özgü unique(benzersiz) bir tanımlama veya id girmenizi istedikten sonra görev adı, önemlilik derecesi ve son bitirme tarihini girebiliyorsunuz. Tamam tuşuna bastıktan sonra karşınıza Tebrikler ekleme tamamlandı tekrar menüye dönmek ister misiniz? şeklinde bir uyarı mesajı gelmektedir. Siz menüye dönmek için tamamtuşuna uygulamadan çıkmak için hayır tuşuna basmalısınız.
📍B. seçeneğini seçerseniz yapılacak görevler listelenmektedir. Bitirdiğiniz görevi seçip tamama tıklarsanız yaptığınız her görev yapılacak listesinden kaldırılıp yapılanlar listesine eklenecektir. Biten görev sonrası uyarı mesajı ile tekrar menüye dönmek istediğinizi sormaktadır. Siz menüye dönmek için tamamtuşuna uygulamadan çıkmak için hayır tuşuna basmalısınız.
📍C. seçeneğini seçerseniz bugüne kadar yaptığınız tüm görevlerin listesini görebileceksiniz.

Projemize bir Shell Script dosyası oluşturarak başladık. Oluşturduğumuz dosyanın başına
#!/bin/bashkomutunu ekledik. Bu projede 5 temel fonksiyon oluşturduk. Bu fonksiyonlar Şu şekildedir:
-
GirisYapFonksiyonu zenity --password --username yapısı ile kullanıcıdan bir giriş alan ve sistemde önceden tanımlanmış kullanıcı adı ve password ile doğrulayıp menü'yü görüntüleminizi sağlar. -
GorevEkleFonksiyonu zenity --form yapısı ile oluşturulmuştur. Kullanıcıdan girişleri --add-combo=çoklu seçim sağlar --add-entry=metin giriş ekranı --add-calendar=Takvim giriş ekranı görevindedir. Alınan bu bilgileriaddr.txtisimli klasörde tutmaktadır. -
GorevListeleFonksiyonuaddr.txtisimli dosyayı " , " ile ayırarak okuyup zenity --list--radiolist yapısı ile listelemektedir. Seçim yapıldığında seçime göre bulunan sıra önce G"örev Yapılma Durumu"TRUEdurumuna çevrilir ve listeden kaldırılıploglar.txtdosyasında tutulur. -
BitenGorevlerFonksiyonu loglar.txt isimli dosyayı " , " ile ayırarak okuyup zenity --list--checklist yapısı ile listelemektedir. -
MenuFonksiyonu whiptail --menu yapısı ile menü oluşturmamızı sağlamıştır.