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 döndürür, yani başarılı ise var ve mevcut değilse sıfır olmayan bir durum döndürür. Tipik olarak, bu bir koşul olarak kullanılır.
Eğer
Beyan.
[ -f ] ise fi
Döndürülen değeri reddetmek için, sadece önce -F
bir olumsuzlama operatörü ile (!
).
Eğer [ ! -f ] sonra fi
Bu durumda, dosya eğer koşul yerine getirecektir. mevcut değil, 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 ifadeye benzer şekilde, bu ifade 0 döndürür, yani, dizin varsa, başarı vardır ve sıfır olmayan, yani mevcut değilse hata durumu döndürülür. Bu aynı zamanda yaygın olarak bir
Eğer
açıklama durumu.
[ -d ] ise fi
Döndürülen durumu reddetmek için, -D
bir olumsuzlama operatörü ile (!
).
Eğer [ ! -d ] sonra 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.
💡 Köşeli ayraç sözdizimi ( [...]
) burada kullanılan aslında bir Linux komutudur. Ölçek
. Seçenekler -F
ve -D
bu komutun özellikleridir. Daha fazla bilgi için, testin kılavuz sayfasına bakın ( adam testi
).
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 (Eğer
bizim durumumuzda), komut istemine devam eder ve kullanıcının devam bloğuna girmesine izin verir.
Aynı sözdizimleri bir Bash betiğinin içinden de kullanılabilir.
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 aşağıdaki gibi kabukları tercih eder: zsh
, bu dosyanın başında bash yerine belirtilmelidir.
Yürütme izinleri vermek için bu dosya için şunu çalıştırın:
chmod +x testi.sh
Nihayet, dosyayı yürütmek için, Çalıştırmak:
./test.sh