Bash betiğinden bir dosya veya dizinin var olup olmadığını kontrol etme
Bash, Linux'ta düzenli olarak yürütülen komutları otomatikleştirmek için kullanılır. Dosyalar/dizinler üzerindeki işlemler için kullanılan komutlar oldukça sık kullanılır ve genellikle böyle bir komutu çalıştırmadan önce belirli bir dosyanın veya dizinin var olup olmadığını kontrol etmemiz gerekir. Gelelim bu kontrolün nasıl yapılacağına.
Sözdizimi ve Kullanım
Dosyalar
Bir dosyanın var olup olmadığını kontrol etmek için aşağıdaki sözdizimini kullanın:
[ -f ]
İfade [ -f ]
0, yani varsa başarılı, yoksa sıfır olmayan bir durum döndürür. Tipik olarak, bu if
ifadede bir koşul olarak kullanılır .
if [ -f ]
then
fi
Döndürülen değeri-f
olumsuzlamak için , bir olumsuzlama operatörüyle ( !
) önüne geçmeniz yeterlidir .
if [ ! -f ]
then
fi
Bu durumda, dosya mevcut değilse koşul sağlanacak , çünkü döndürülen sıfır olmayan durum (yanlış) reddedilecek ve 0 (doğru) olarak kabul edilecektir.
Kontrol edilecek dosya geçerli dizinde yoksa ve başka bir dizinde mevcutsa, yalnızca dosya adı yerine dosyanın tam yolunun belirtilmesi gerektiğini unutmayın.
dizinler
Dosyaları kontrol etmek için kullanılana benzer sözdizimi, dizinleri kontrol etmek için kullanılır.
[ -d ]
Dosyalar için deyime benzer şekilde, bu deyim 0, yani dizin varsa başarı, sıfır olmayan, yani yoksa başarısızlık durumu döndürür. Bu aynı zamanda bir if
ifade koşulunda da yaygın olarak kullanılır .
if [ -d ]
then
fi
Döndürülen durumu olumsuzlamak için, -d
olumsuzlama işlecinden önce ( !
).
if [ ! -d ]
then
fi
Bu durumda, dizin mevcut değilse koşul sağlanır (durum 0) ve dizin varsa başarısız olur (durum sıfır değildir).
Dosyalar için daha önce bahsedildiği gibi, kontrol edilecek dizin mevcut dizinde değil de başka bir yerde mevcutsa, sadece dizin adı yerine tüm dizin yolunun girilmesi gerekir.
💡 [...]
Burada kullanılan parantez sözdizimi ( ) aslında adı verilen bir Linux komutudur test
. Seçenekler -f
ve -d
bu komutun özellikleridir. Daha fazla bilgi için, testin ( man test
) kılavuz sayfasına bakın .
Bash Komut Dosyasından Kontrol Edin
Yukarıdaki örneklerde, sözdizimlerini doğrudan terminal üzerinde kullandık. Kabuk, bir döngü veya koşullu bir ifadeyle karşılaştığında ( if
bizim durumumuzda), istemi sürdürür ve kullanıcının bloğa devam etmesine izin verir.
Aynı sözdizimleri bir Bash betiğinin içinden de kullanılabilir.
#!/bin/bash
Başlangıcında dosya çalıştırıldığında tercüman kullanılacak belirtir. Bash günümüzde en yaygın kullanılan kabuk olmasına rağmen, bazı kullanıcılar zsh
bu dosyanın başında bash yerine belirtilmesi gereken gibi kabukları tercih ederler .
Bu dosyaya yürütme izinleri vermek için şunu çalıştırın:
chmod +x test.sh
Son olarak, dosyayı yürütmek için şunu çalıştırın:
./test.sh