Bash vaka deyimi nasıl kullanılır

How Use Bash Case Statement



Bash durum ifadeleri, if-else ifadelerine benzer ancak daha kolay ve basittir. Bir değişkeni birkaç değerle eşleştirmeye yardımcı olur. Birkaç Elif deyimi ile IF-else deyimlerine ihtiyaç duyduğunuzda kullanılır… C'deki switch deyimine oldukça benzer, ancak kalıp eşleştirildikten sonra bash case deyimi ileriye doğru hareket etmez.

Bu yazımızda, Linux işletim sisteminde Bash case deyiminin nasıl kullanılacağını örneklerle açıklayacağız.







bash durum deyiminin sözdizimi

Bash case ifadesinin sözdizimi şöyledir:



Sözdizimi:



durum $ değişken içinde
Desen-1)
komutlar
;;
Desen-2)
komutlar
;;
Desen-3)
komutlar
;;
desen-N)
komutlar
;;
*)
komutlar
;;
esac
  • Case ifadesi case ile başlar ve esac ile biter
  • ) bir kalıbı sonlandırmak için kullanılır. Birden çok deseni ayırmak için, | operatörü aşağıda gösterildiği gibi kullanılır:
durum $ değişken içinde
Desen-1|Desen-2)
komutlar
....
....
;;
Desen-3|Desen-4)
komutlar
....
....
;;
  • Komut içeren kalıp, yan tümce olarak bilinir ve her yan tümce (;;) ile biter.
  • Yıldız simgesi* varsayılan durumu tanımlamak için kullanılabilir.
  • Bash case ifadesi önce $değişken girdisini farklı desenlerle eşleştirir. Bir desen eşleştirilirse, çift noktalı virgüle (;;) kadar karşılık gelen komut kümesi yürütülür.

Örnek 1:

Aşağıdaki örnek, kullanıcıdan ay adını girmesini istediği bash nakit beyanı ile ilgilidir. Bu girdi, koddaki tanımlı kalıplarla eşleşirse, karşılık gelen yankı komutu yürütülür. Echo komutu, o ayın uluslararası etkinliği hakkında bilgi görüntüler.





Bu betiği kullanmak için basit bir metin dosyası oluşturun; .sh dosya uzantısıyla adlandırın. İçine aşağıdaki betiği ekleyin ve kaydedin. Ardından, Terminal'de aşağıdaki komutu çalıştırarak izinleri yürütmek için bu dosyayı atayın:

$sudo chmod 777dosyaadi.sh

Bu bash dosyasını çalıştırmak için aşağıdaki gibi bash dosya adının ardından ./ komutunu çalıştırın:



$./dosyaadi.sh

Komut dosyasını çalıştırdığınızda, giriş olarak ayın adını girmeniz istenecektir. Ay adı eşleşirse, o aydaki ilgili olayı görüntüler, aksi takdirde eşleşen bilgi bulunamadı görüntülenmez.

shopt -s nocasematch öğesinin, durumundan bağımsız olarak deseni eşleştirmek için kullanıldığını unutmayın.

dükkanlar -snocasematch

dışarı attı 'Ayın adını girin'
okumanay
durum $ay içinde
Ocak)
dışarı attı ' 24 Ocak Uluslararası Eğitim Günü.'
;;
Şubat)
dışarı attı ' 20 Şubat Dünya Sosyal Adalet Günü .'
;;
Mart)
dışarı attı '8 Mart Dünya Kadınlar Günü.'
;;
Nisan)
dışarı attı '7 Nisan Dünya Sağlık Günü'
;;
Mayıs)
dışarı attı '15 Mayıs Uluslararası Aile Günü'
;;
Haziran)
dışarı attı '20 Haziran Dünya Mülteciler Günü'
;;
Temmuz)
dışarı attı '11 Temmuz Dünya Nüfus Günü'
;;
*)
dışarı attı 'Eşleşen bilgi bulunamadı'
;;
esac

Örnek 2:

Aşağıdaki örnek, bir kullanıcıdan ülke adını girmesinin istendiği bash nakit beyanı ile ilgilidir. Bu girdi, koddaki tanımlı kalıplarla eşleşirse, karşılık gelen yankı komutu yürütülür. Echo komutu, o ülkenin başkenti hakkında bilgi görüntüler.

Bu komut dosyasını kullanmak için yukarıdaki örnekte açıklanan yöntemin aynısını izleyin. Tamamlandığında, komut dosyasını yürütün ve giriş olarak ülkenin adını girmeniz istenecektir. Ülke adı önceden tanımlanmış ülke adlarıyla eşleşirse, o ülkenin başkenti adını görüntüler, aksi takdirde Bilgi mevcut değil mesajı görüntülenir.

#!/bin/bash
dükkanlar -snocasematch
dışarı attı -n 'Bir ülkenin adını girin:'
okumanülke

dışarı attı -n 'Başkenti$ülkeNS '
durum $ülke içinde
Pakistan)
dışarı attı -n 'İslamabad'
;;
Fiji)
dışarı attı -n 'Kuru'
;;
Birleşik Krallık| 'Birleşik Krallık')
dışarı attı -n 'Londra'
;;
Türkiye)
dışarı attı -n 'Ankara'
;;
KULLANIMLAR)
dışarı attı -n 'Washington DC'
;;
*)
dışarı attı -n 'Bilgi yok'
;;
esac
dışarı attı ''

Bash durum ifadeleri, bash betiğinin okunmasını ve anlaşılmasını kolaylaştırır. Bu yazıda, bash case deyimlerinin nasıl yazılacağını ve kullanılacağını ele aldık. Artık case deyimlerini kullanarak çok düzeyli if-else deyimini kolayca ve basit bir şekilde yazabilirsiniz.