Bash 'eğer başka' İfadesi: Öğretici ve Örnekler

Koşullu kod yürütme için Bash'de if…else ifadesini kullanma.

Bash (Bourne Again Shell), GNU/Linux işletim sistemlerinde bir kabuk komut istemi ve betik dilidir. Çoğu Linux dağıtımı için varsayılan kabuktur.

Koşullu ifadeler, herhangi bir programlama dilinde hayati öneme sahiptir, hem derlenmiş hem de komut dosyası yazılmıştır. Kullanıcının, programlama mantığının temellerinden biri olan önceden tanımlanmış bir koşula dayalı olarak bir kod parçası yürütmesine izin verirler. Bu yazımızda nasıl kullanılacağını öğreneceğiz. eğer...başka Bash'de koşullu ifade.

Tanıtım

bu eğer...başka Bash'deki deyim, kullanıcının koşullara göre kod akışını değiştirmesine izin verir. Kullanıcı, yerine getirilen ilgili koşula bağlı olarak, yürütülecek ayrı kod blokları belirleyebilir, bunlardan yalnızca biri çalışma zamanı sırasında nihayet yürütülecektir.

Bunun için ikiden fazla koşulun belirtilebileceğini unutmayın. elif ifadesi kullanılabilir. Kullanıcı kullanarak herhangi bir sayıda koşul verebilir elifve son olarak kullanarak varsayılan bir koşul Başka engellemek. Aşağıdaki sözdiziminde ve örneklerde bununla ilgili daha fazla bilgi görelim.

Genel Sözdizimi

için genel sözdizimi eğer...başka Bash'deki ifade şudur:

eğer öyleyse  Başka  fi

Burada, eğer tatmin eder, yani 0 (başarılı) döndürürse, kod bloğu 1 yürütülür. Koşul 0 döndürmezse, yani bir başarısızlık durumu döndürürse, kod bloğu 2 yürütülür. bu eğer...başka blok bir ile biter fi Beyan.

Birden çok koşula karşılık gelen birden çok blok için,elif kullanıldı:

eğer öyleyse  o zaman elif  o zaman elif  ... ... Başka  fi

Burada koşullar sırayla kontrol edilir ve 0 (başarı) durumunu döndüren ilk koşulun kod bloğu yürütülür. Örneğin. Eğer sıfır olmayan durumu (başarısızlık) döndürür, ardından kontrol edilir. Eğer 0 durumunu döndürür, Idam edildi. Bundan sonra, diğer koşullar kontrol edilmez ve kod yürütme, aşağıdakilerden sonra koda devam eder. fi Beyan.

Koşullardan hiçbiri 0 durumunu döndürmezse, else bloğunda yürütülür. else bloğunun isteğe bağlı olduğunu unutmayın. Hiçbir koşul yerine getirilmezse, hayır Başka blok belirtilirse, hiçbir koşullu kod bloğu çalışmaz ve kod yürütme, aşağıdakinden sonra koda devam eder. fi Aşağıdaki akış grafiğinde gösterildiği gibi ifade.

Şuna dikkat edin: sonra deyimi yalnızca sonra kullanılacaktır Eğer ve elif ifadeler ve sonrasında gerekli değildir Başka Beyan.

Örnekler

Bir kod bloğu yürütmek için bir değişkenin belirli bir değeri varsa:

x=0 ise [ $x -eq 0 ] ise echo "X'in Değeri 0" değilse echo "X'in Değeri 0 değil" fi

Birden çok değeri kontrol etmek için:

x=2 ise [ $x -eq 0 ] ise echo "X'in Değeri 0" elif [ $x -eq 1 ] ise echo "X'in Değeri 1'dir" elif [ $x -eq 2 ] ardından echo "Value of X 2'dir" else echo "X'in Değeri 0 Değildir" fi

Koşullar herhangi bir Linux komutu olabilir. Komut başarılı bir şekilde çalışırsa ilgili kod bloğu yürütülür.

npm -v ise, "NPM sistemde mevcut" ifadesini yankılarsa, sudo apt install npm fi

Yukarıdaki örnekte, çünkü npm sistemde yüklü değildi, komut npm -v sıfır olmayan bir durum döndürdü. Bu nedenle, kod yürütme Başka kullanarak npm'yi kurduğumuz blok uygun Paketleme yöneticisi. Gördüğümüz gibi, şifreyi girmemi istedi ve npm kurulumuna başladı.

Ayrıca başka bir yuva yapabiliriz eğer...başka içinde blok Eğer, Başka veya elif engellemek:

x=0 y=1 [ $x -eq 0 ] ise echo "X 0" ise [ $y -eq 1 ] ise echo "Y 1'dir" aksi takdirde echo "Y 1 değil" fi else echo "X 0" değil

Bu, bir başlangıç ​​koşulu sağlandıktan sonra ayrı bir koşul kümesinin kontrol edilmesi gerektiğinde yararlıdır.

Örneğin, aşağıdaki kod bir web sunucusu yazılımı kurmaya çalışır:

nginx -v ise, "NGINX zaten kurulu" ifadesini yankılayın. Aksi takdirde, sudo apt install nginx "NGINX kurulumu başarılı" ifadesini yankılanır. elif sudo apt apache2'yi yükleyin ve ardından "APACHE2 kurulumu başarılı" ifadesini yankılayın. else echo "Herhangi bir web yazılımı yüklenemiyor." fi

Kod önce Nginx'in sistemde kurulu olup olmadığını kontrol eder. Eğer öyleyse, sadece bir mesaj görüntüler ve çıkar. Değilse, Nginx'i yüklemeye çalışır.

Herhangi bir nedenle Nginx paketten sisteme yüklenemezse, Apache2'yi yüklemeyi dener. Apache2 bile kurulum sırasında hata verirse, hiçbir yazılım yüklenemediğini belirten bir mesaj görüntüleyerek çıkar.

Benzer şekilde, iç içe geçmiş bir blok, bir elif de engelle.

Yürütme eğer...başka: Komut Dosyaları ve Komut Satırı

Herhangi bir Bash koduna benzer şekilde, eğer...başka deyimi, doğrudan veya yürütülebilir bir kabuk komut dosyasından Bash kabuğunda kullanılabilir. Bash yorumlayıcısı bir Eğer, Başka veya elif deyimi, kullanıcının kod bloğunu girmesine izin vermek için kabuğa devam eder.

Kullanıcı ayrıca bu kodu bir komut dosyasına kaydedebilir ve komut dosyasını çalıştırabilir.

bu #!/bin/bash başlangıçta dosya yürütüldüğünde kullanılacak yorumlayıcıyı belirtir. Bash günümüzde en yaygın kullanılan kabuk olmasına rağmen, bazı kullanıcılar bu dosyanın başında bash yerine belirtilmesi gereken zsh gibi kabukları tercih etmektedir.

Bu dosyaya yürütme izinleri vermek için şunu çalıştırın:

chmod +x testi.sh

Son olarak, dosyayı yürütmek için şunu çalıştırın:

./test.sh

Çözüm

Herhangi bir programlama diline benzer şekilde, eğer...başka deyimi Bash'in temel bir özelliğidir. Kullanımının öğrenilmesi, temel ve gelişmiş komut dosyalarının yazılmasında uzun bir yol kat eder.