"Enter"a basıp içeriğe geçin

Bash If-Then-Else Örneği – Linux Önerileri

Bu dersimizde If-Then-Else deyimlerini Bash ortam betiklerinde nasıl kullanabileceğimizi göreceğiz. If-Then-Else deyimleri, belirli koşullar karşılandığında bir komut dosyası için eylem planını tanımlamanın bir yolunu sağlamak için yararlı bir araçtır. If-Then-Else deyimlerinin sözdiziminin ne olduğunu görelim:

eğer bazı siparişler
Daha sonra komutlardan sonra;
diğer diğer siparişler
fi

Yukarıdaki komutta, bazı komutların doğru olduğu bulunursa veya dönüş durumu 0 ise, komutlar yürütülür. Aksi takdirde, ELSE-COMMANDS yürütülür. Bazı komutlarda, genellikle tamsayılar biçiminde bazı dizi karşılaştırmaları veya değer karşılaştırmaları yaparız. Dosyaları içeren birçok işlemi de gerçekleştirebiliriz. Öncelikli olarak dosya tabanlı koşullarla çalışırken kullanılan bazı temel örnek komutlara bakalım:

öncelik anlam
[ -a ] FILE mevcut olduğunda true değerini döndürür.
[ -B ] FILE mevcut olduğunda ve bloğa özgü bir dosya olduğunda true değerini döndürür.
[ -C  ] FILE mevcut olduğunda & karaktere özgü bir dosya olduğunda true değerini döndürür.
[ -NS  ] FILE var olduğunda ve bir dizin olduğunda true değerini döndürür.
[ -e  ] FILE mevcut olduğunda true değerini döndürür.
[ -F  ] Dosya var olduğunda ve normal bir dosya olduğunda true değerini döndürür.
[ -G  ] FILE mevcut olduğunda ve SGID biti ayarlandığında true değerini döndürür.
[ -H  ] file & bir sembolik bağlantı olduğunda true değerini döndürür.
[ -k  ] FILE mevcut olduğunda ve yapışkan bit ayarlandığında true değerini döndürür.
[ -P  ] Dosya var olduğunda ve adlandırılmış bir yöneltme (FIFO) olduğunda true değerini döndürür.
[ -r  ] Dosya var olduğunda ve okunabilir olduğunda true değerini döndürür.
[ -s  ] Dosya mevcut olduğunda ve boyutu sıfırdan büyük olduğunda true değerini döndürür.
[ -T ] FD dosya tanıtıcısı açık olduğunda ve bir terminali işaret ettiğinde true değerini döndürür.
[ -u  ] FILE mevcut olduğunda ve SUID (Kullanıcıya Özel Tanımlayıcı) ​​biti ayarlandığında true döndürür.
[ -w  ] Dosya var olduğunda ve yazılabilir olduğunda true değerini döndürür.
[ -x  ] Dosya mevcut ve yürütülebilir olduğunda true değerini döndürür.
[ -Ö  ] FILE mevcut olduğunda ve etkin kullanıcı kimliğine ait olduğunda true değerini döndürür.
[ -G  ] Dosya mevcut olduğunda ve etkin koleksiyon kimliğine ait olduğunda true değerini döndürür.
[ -L  ] file & bir sembolik bağlantı olduğunda true değerini döndürür.
[ -N  ] Dosya var olduğunda ve son okunduğundan beri değiştirildiğinde true değerini döndürür.
[ -S  ] Dosya var olduğunda ve bir yuva olduğunda true değerini döndürür.

THEN-COMMANDS ve ELSE-COMMANDS, herhangi bir geçerli UNIX işlemi veya herhangi bir çalıştırılabilir program olabilir. Bunu hatırla Daha sonra E fi Komutlar, komut dosyasının tamamen ayrı öğeleri olarak kabul edildikleri için noktalı virgülle ayrılır.

Basit If-Then-Else örneği

Derse çok basit bir If-Then-Else ifadesi örneği ile başlayalım.
İşte örnek bir program:

bir örnek varsa

bir örnek varsa

Komut dosyamızı çalıştırdığımızda gördüğümüz çıktı şu şekildedir:

$. ifelse1.sh
değerler aynı!
$

Komut satırı bağımsız değişkenlerini kullanın

Komut satırı argümanlarını betiklerimizde de kullanabilir ve tanımladığımız IF deyiminde koşul olarak aynı sayıda argüman ve değeri kullanabiliriz. İlk önce aşağıdaki içeriğe sahip bir metin dosyası tanımlarız:

Benim adım LinuxHint. Sunucuları, özellikle Ubuntu sunucularını seviyorum. onlar çok
ölümcül!

Artık bir metin dosyasında bir kelimenin olup olmadığını algılayan bir komut dosyası yazabiliriz. Şimdi betiği tanımlayalım:

Eko“2 dolarda 1 doları bul”
grep1 dolar2 dolar
eğer[$?-ne0]
Daha sonra
Eko“$2 dosyasında $1 yok.”
diğer
Eko“$2’nin dosyasında $1 bulundu.”
fi
Eko“Komut dosyası tamamlandı”.

Bu senaryo çok dinamiktir. Bulunacak kelimeyi ve aranacak dosyayı komut satırından dikkate alır. Artık betiğimizi çalıştırmaya hazırız:

. ifelse2.sh merhaba.txt’yi beğendim

Bunun gibi bir çıktı göreceğiz:

aşkı bulma içeri merhaba.txt
Aşkı buldum içeribir dosya merhaba.txt
Metin tamamlandı.

Komut satırı bağımsız değişkenlerinin sayısını kontrol edin

IF yan tümcesi içinde, aynı şekilde davranabilmemiz için komuta kaç komut satırı argümanının iletildiğini bile kontrol edebiliriz:

saymak=# dolar
eğer[!$sayım-gt1]
Daha sonra
Eko‘Yeterli tartışma yok’
diğer
Eko“İyi yaptım!”
fi

Şimdi bu betiği çalıştıralım, aşağıdaki çıktıyı göreceğiz:

komut satırı bağımsız değişkenleri

komut satırı bağımsız değişkenleri

If-Then-Elif-Else ifadeleri

Programımızın tanımladığımız komutları yürütmek için izlediği karar yolunu daraltmak için aynı blokta birden fazla IF ifadesine sahip olabiliriz. Betiklerimizde birden fazla IF ifadesi tanımlamak için kullanılan sözdizimi şöyledir:

eğer deneme komutları;
Daha sonra
sonuç emirleri;
yerel
diğer siparişler
Daha sonra
diğer besleme komutları;
diğer
alternatif siparişler;
fi

Bu çok tanıdık görünüyor ve takip etmesi de kolay. Bir ağacın nasıl çalıştığını tanımlamak için basit bir örnek çalıştıralım:

saymak=# dolar
eğer[$sayım-eq1]
Daha sonra
Eko“Yalnızca bir bağımsız değişken bulundu.”
yerel[$sayım-eq2]
Daha sonra
Eko“En iyisi, iki argüman bulundu.”
diğer
Eko“Aferin, bir sürü argüman bulundu!”
fi

İşte bununla geri döndüğümüz şey:

Bu bir Elif Else örneği ise

Bu bir Elif Else örneği ise

Kullanım durumu ifadeleri

IF-ELSE ifadeleri, karar vermeniz gereken geniş bir seçenek listeniz olduğunda kullanışlıdır. Ancak, sonuçla tam olarak eşleşen bir eylem gerçekleştirmek istediğimizde Bash betiklerinde CASE deyimlerini de kullanabiliriz. Sözdizimi şöyle görünür:

dava, davet ifade içeri Dava 1) yürütme emirleri;
Durum 2) yürütme emirleri;
Durum 2) yürütme emirleri;
) yürütme emirleri;
*) yürütme emirleri;
esac

* ile son durum, varsayılan durum olarak işlev görür ve yukarıda tanımlanan durumların hiçbiri eşleşmediğinde yürütülür.

CASE deyimlerini kullanarak hızlıca basit bir örnek oluşturalım:

dava, davet“1 dolar”içeri
1)
Eko“değer 1.”
;;
2)
Eko“değer 2”
;;
3)
Eko“Değer 3.”
;;
*)
EkoBaşka bir değer geçti.
esac

her CASE ifadesi ;; (çift noktalı virgül). İşte bununla geri döndüğümüz şey:

CASE örneği

CASE örneği

çözüm

Bu derste, tanımladığımız Bash betiklerinde IF-ELSE, IF-THEN-ELIF ve CASE deyimlerinin nasıl kullanıldığına baktık. Yazılımımızda bulunan veya kullanıcının konum parametrelerini kullanarak sunduğu değerlere dayalı olarak belirli eylemleri gerçekleştirin.

Diğer gönderilerimize göz at

[wpcin-random-posts]

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir