BASH Programming

Bash if -e ve -s ve diğer Dosya Test Operatörleri

Bash if -e ve -s ve diğer Dosya Test Operatörleri

Herhangi bir işletim sistemindeki dosyalarla çalışırken, kullanıcının bu dosyaları sahiplik, erişim hakları, içerik, varlık vb. gibi belirli yönler açısından test etmesi zorunludur. Bu yönler, “if” ifadesini Bash'deki çeşitli dosya test operatörleriyle birleştirirken anlaşılabilir. "if -e" ve "if -s", Bash'de bir dosyanın varlığını test etmek için kullanılan bu tür operatörlerdir. İkisi arasındaki fark, ilkinin yalnızca bir dosyanın varlığını test etmesi, ikincisi ise o dosyada herhangi bir içerik olup olmadığını kontrol etmesidir. Bugün, Bash'deki diğer birkaç dosya test operatörü ile birlikte bu iki operatörün kullanımını anlamaya çalışacağız.

Not: Bash'de dosya test operatörlerinin kullanımını göstermek için Linux Mint 20 kullandık.

Bash'de Dosya Test Operatörlerini Kullanma Örnekleri

“if -e” ve “if -s” dosya test operatörlerinin kullanılabileceği farklı yollar vardır. Kullanımlarını açıklamak için bazı örnekleri sizinle paylaşacağız.

“if -e” Operatörünü Kullanma Örneği

Bash'te “if -e” operatörünü kullanmak için şu adımları izlemeniz gerekir:

İlk olarak Test adında boş bir metin dosyası oluşturduk.Ana dizinimizde robots.txt. Ardından FileTestOperators adında bir bash dosyası oluşturduk.sh aynı dizinde. Bu dosyayı oluşturduktan sonra aşağıdaki resimde gösterilen scripti dosyamıza yazdık. Bu bash betiğinde, “file” adında bir değişken tanımladı ve ona Test adlı metin dosyamızı atadı.değeri olarak txt. Ardından, belirtilen herhangi bir dosya varsa "doğru" bir çıktı üreten bir "if -e" ifadesine sahibiz.

Komut dosyamızı test etmek için aşağıda belirtilen komutu kullanarak çalıştıracağız:

$ bash DosyaTest Operatörleri.ş

Bizim durumumuzda, metin dosyası mevcut olduğundan, aşağıdaki resimde gösterildiği gibi betiğimizin çıktısının doğru olmasının nedeni budur:

“if -s” Operatörünü Kullanma Örneği

Bash'de “if -s” operatörünü kullanmak için aşağıda listelenen adımları uygulamalısınız:

Bu örnek için, bash betiğimiz yukarıda kullandığımızla aynı. “if -e” ifadesini “if -s” olarak değiştirdik. Ayrıca, aynı boş metin dosyasını Test kullandık.Txt.

Şimdi, bu betiği çalıştırdığımızda çıktı false olacaktır çünkü “if -s” operatörü bir dosya varsa ve ayrıca boş değilse true değerini döndürür. Bizim durumumuzda, dosya var olmasına rağmen hala boştu, bu yüzden aşağıdaki resimde gösterildiği gibi çıktımızın yanlış olduğu ortaya çıktı:

Bu bayrağın doğru olması için, metin dosyamıza aşağıda gösterildiği gibi bazı boş metinler yazacağız:

Sonra bash betiğimizi tekrar çalıştırıyoruz ve bu sefer çıktı doğru olacak, aşağıdaki resimde gösterildiği gibi, çünkü metin dosyasının içinde şimdi bir miktar metin var.

Diğer Dosya Test Operatörlerini Kullanma Örnekleri

“if -e” ve “if -s” operatörlerinden başka dosya test operatörleri de vardır. Aşağıda, yukarıda tartışılanlar dışındaki en önemli dosya test operatörlerinden bazılarını sizinle paylaşacağız.

“if -d” Operatörünü Kullanma Örneği

Bash'te “if -d” operatörünü kullanmak için aşağıda listelenen adımları uygulamanız gerekir:

Bu örnek için, bash betiğimiz yukarıda kullandığımızla aynı. Az önce “if -s” ifadesini “if -d” olarak değiştirdik. Ayrıca, aynı metin dosyasını Test kullandık.Txt.

Dosyanız bir dizin ise “if -d” operatörü true değerini döndürür, aksi takdirde false olur. Metin dosyamız bir dizin olmadığından, aşağıdaki resimde gösterildiği gibi çıktı yanlış olacaktır:

“if -h” Operatörünü Kullanma Örneği

Bash'de “if -h” operatörünü kullanmak için şu adımları izlemeniz gerekir:

Bu örnek için, bash betiğimiz yukarıda kullandığımızla aynı. “if -d” ifadesini “if -h” olarak değiştirdik. Ancak, bu sefer test etmek için farklı bir dosya kullandık, bu aslında NewBash adlı sembolik bir bağlantıydı.ş.

Dosyanız sembolik bir bağlantı ise “if -h” operatörü true değerini döndürür, aksi takdirde false olur. Test dosyamız sembolik bir bağlantı olduğundan, aşağıdaki resimde gösterildiği gibi çıktı doğru olacaktır:

“if -r” Operatörünü Kullanma Örneği

Bash'de “if -r” operatörünü kullanmak için şu adımları izlemeniz gerekir:

Bu örnek için, bash betiğimiz yukarıda kullandığımızla aynı. “if -h” ifadesini “if -r” olarak değiştirdik. Ayrıca, aynı metin dosyasını Test kullandık.Txt.

"if -r" operatörünün çıktısı, mevcut kullanıcı dosyayı okuyabiliyorsa true olacaktır, aksi takdirde false olacaktır. Metin dosyamız bizim tarafımızdan okunabilir olduğundan, aşağıdaki resimde gösterildiği gibi çıktı doğru olacaktır:

Aynı şekilde, bir dosyanın mevcut sahibi tarafından yazılabilir ve yürütülebilir olup olmadığını kontrol etmek için “if -w” ve “if -x” operatörlerini kullanabilirsiniz.

“if -O” Operatörünü Kullanma Örneği

Bash'te “if -O” operatörünü kullanmak için aşağıda listelenen adımları uygulamalısınız:

Bu örnek için, bash betiğimiz yukarıda kullandığımızla aynı. “if -r” ifadesini “if -O” olarak değiştirdik. Ayrıca, aynı metin dosyasını Test kullandık.Txt.

"if -O" operatörünün çıktısı, dosyanın sahibi o anki kullanıcıya aitse true olacaktır, aksi takdirde false olacaktır. Metin dosyamız bize ait olduğundan, aşağıdaki resimde gösterildiği gibi çıktı doğru olacaktır:

Sonuç

Bu makale, okuyucuya Linux işletim sistemini kullanarak Bash'te farklı dosya test operatörlerinin kullanımı hakkında bilgi verdi. Bu dosya test operatörlerini kullanarak, kullanıcının herhangi bir zorluk çekmeden dosyalar üzerinde çalışması çok uygun hale gelir. Farklı amaçlar için kullanılabilecek başka dosya test operatörleri de vardır, ancak, bu makalede tartışılanlar en yaygın olarak kullanılanlardır.

Linux için En İyi 5 Arcade Oyunu
Günümüzde bilgisayarlar oyun oynamak için kullanılan ciddi makinelerdir. Yeni yüksek puanı alamazsan, ne demek istediğimi anlayacaksın. Bu yazıda, bug...
Wesnoth 1 Savaşı.13.6 Geliştirme Yayınlandı
Wesnoth 1 Savaşı.13.Geçen ay yayınlanan 6. sürüm, 1. sürümdeki altıncı geliştirme sürümüdür.13.x serisi ve özellikle kullanıcı arayüzü için bir dizi i...
Ubuntu 14'te League Of Legends Nasıl Kurulur.04
League of Legends hayranıysanız, bu, League of Legends koşusunu test etmeniz için bir fırsattır. Linux kullanıcısıysanız LOL'nin PlayOnLinux'ta destek...