Bu başlıkta nasıl kullanılacağını anlayacağız. if ifadeleri Otomatik görevlerimizi tamamlamak için Bash komut dosyalarında.
Ifadelerin faydalı olup olmadığına bakın. İfadelerin sıralı yürütülmesi akışında koşullu görevleri gerçekleştirmek için kullanılırlar. If ifadeleri genellikle Bash betiklerimizde karar vermemize olanak sağlar. Belirleyebileceğimiz koşula göre bir kod parçasını çalıştırıp çalıştırmayacağımıza karar vermemize yardımcı olurlar.
Temel if İfadeleri
Temel bir if ifadesi, belirli bir koşulun doğru olması durumunda yalnızca belirli bir eylem kümesinin yürütülmesini emreder. Doğru değilse bu eylemleri gerçekleştirmeyin. If ifadesi aşağıdaki formata dayanmaktadır:
Sözdizimi
if [ expression ]; then statements fi
Aradaki açıklama Daha sonra Ve olmak (Geriye doğruysa) yalnızca ifade (köşeli parantezler arasında) doğruysa yürütülür.
Not:İlk satırda kullanılan boşluklara ve ilk satırın sonundaki noktalı virgüllere dikkat edin; her ikisinin de kullanılması zorunludur.Eğer koşullu ifadeile biterolmak.
- AND operatörüyle birden fazla koşulu kullanmak için:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- OR operatörüyle birden çok koşulu kullanmak için:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- AND ve OR operatörleri içeren bileşik ifadeler için aşağıdaki sözdizimini kullanabiliriz:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Aşağıda if ifadesinin kullanımını gösteren bazı örnekler verilmiştir:
örnek 1
Bu örnekte, herhangi bir sayının kullanıcı girişini alın ve değerin 125'ten büyük olup olmadığını kontrol edin.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Çıktı
159 sayısını girersek çıktı şöyle görünecektir:
Örnek 2
Bu örnekte kullanımını gösteriyoruz. if ifadesi iki dizeyi karşılaştırmanın basit bir senaryosu ile:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Çıktı
Örnek 3
Bu örnekte, if ifadesini kullanarak sayıları nasıl karşılaştıracağımızı gösteriyoruz:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Çıktı
Örnek 4
Bu örnekte, if ifadesine birden çok koşulu dahil etmek için AND operatörünün nasıl kullanılacağını tanımlayacağız:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Çıktı
Örnek 5
Bu örnekte, if ifadesine birden çok koşulu dahil etmek için OR operatörünün nasıl kullanılacağını tanımlayacağız:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Çıktı
Örnek 6
Bu örnekte, if ifadesine birden çok koşulu dahil etmek için VE ve VEYA'nın nasıl kullanılacağını tanımlayacağız:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Çıktı
Bash Komut Dosyasında If ifadesi seçenekleri
If ifadesi belirli bir görevi gerçekleştirmek için birçok seçenek içerir. Bu seçenekler dosya işlemleri, dize işlemleri vb. için kullanılabilir. En çok kullanılan seçeneklerden bazıları şunlardır:
Seçenekler (Operatörler) | Tanım |
---|---|
! İFADE | EXPRESSION'ın yanlış olup olmadığını kontrol etmek için. |
-n STRING | STRING uzunluğunun sıfırdan büyük olup olmadığını kontrol etmek için. |
-z Dize | STRING uzunluğunun sıfır olup olmadığını (yani boş olup olmadığını) kontrol etmek için |
STRING1 == STRING2 | STRING1'in STRING2'ye eşit olup olmadığını kontrol etmek için. |
STRING1 != STRING2 | STRING1'in STRING2'ye eşit olup olmadığını kontrol etmek için. |
TAM SAYI1 -eq TAM SAYI2 | INTEGER1'in sayısal olarak INTEGER2'ye eşit olup olmadığını kontrol etmek için. |
TAM SAYI1 -gt TAM SAYI2 | INTEGER1'in sayısal olarak INTEGER2'den büyük olup olmadığını kontrol etmek için. |
TAM SAYI1 -lt TAM SAYI2 | INTEGER1'in sayısal olarak INTEGER2'den küçük olup olmadığını kontrol etmek için. |
-d DOSYA | FILE'ın var olup olmadığını ve bunun bir dizin olup olmadığını kontrol etmek için. |
-E-Dosya | FILE'ın var olup olmadığını kontrol etmek için. |
-r DOSYA | FILE'ın var olup olmadığını ve okuma izninin verilip verilmediğini kontrol etmek için. |
-s DOSYA | FILE'ın var olup olmadığını ve boyutunun sıfırdan büyük olup olmadığını kontrol etmek için (bu, boş olmadığı anlamına gelir). |
-w DOSYA | FILE'ın var olup olmadığını ve yazma izninin verilip verilmediğini kontrol etmek için. |
x DOSYA | FILE'ın var olup olmadığını ve yürütme izninin verilip verilmediğini kontrol etmek için. |
İç İçe Eğer
Bash betiğinizin içine gerektiği kadar 'if ifadesi' uygulayabilirsiniz. Bir if ifadesini başka bir 'if ifadesinin' içinde kullanmak da mümkündür. İç İçe If İfadesi olarak bilinir.
Örnek
Bu örnekte 'belirli bir sayının 50'den büyük ve çift sayı olup olmadığını' iç içe if ifadesini kullanarak bulacağız.
#!/bin/bash #Nested if statement if [ $1 -gt 50 ] then echo 'Number is greater than 50.' if (( $1 % 2 == 0 )) then echo 'and it is an even number.' fi fi
Çıktı
Argüman değerini 100 olarak girersek çıktı şöyle görünecektir:
Çözüm
Bu konu başlığımızda bash if deyimi ile deyimlerin sıralı yürütülmesinde koşullu dallanmayı nasıl kullanabileceğimizi tartıştık.