logo

Eğer Bash

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:

Bash If İfadesi

Ö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ı

Bash If İfadesi

Ö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ı

Bash If İfadesi

Ö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ı

Bash If İfadesi

Ö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ı

Bash If İfadesi

Ö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 If İfadesi

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:

Bash If İfadesi

Çö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.