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 elif
ve 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 Koşullardan hiçbiri 0 durumunu döndürmezse, Şuna dikkat edin: Bir kod bloğu yürütmek için bir değişkenin belirli bir değeri varsa: Birden çok değeri kontrol etmek için: Koşullar herhangi bir Linux komutu olabilir. Komut başarılı bir şekilde çalışırsa ilgili kod bloğu yürütülür. Yukarıdaki örnekte, çünkü Ayrıca başka bir yuva yapabiliriz 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: 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 Herhangi bir Bash koduna benzer şekilde, Kullanıcı ayrıca bu kodu bir komut dosyasına kaydedebilir ve komut dosyasını çalıştırabilir. bu Bu dosyaya yürütme izinleri vermek için şunu çalıştırın: Son olarak, dosyayı yürütmek için şunu çalıştırın: Herhangi bir programlama diline benzer şekilde, 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. 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.sonra
deyimi yalnızca sonra kullanılacaktır Eğer
ve elif
ifadeler ve sonrasında gerekli değildir Başka
Beyan.Örnekler
x=0 ise [ $x -eq 0 ] ise echo "X'in Değeri 0" değilse echo "X'in Değeri 0 değil" fi
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
npm -v ise, "NPM sistemde mevcut" ifadesini yankılarsa, sudo apt install npm fi
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ı.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
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
elif
de engelle.Yürütme
eğer...başka
: Komut Dosyaları ve Komut Satırı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.#!/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.chmod +x testi.sh
./test.sh
Çözüm
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.