Bash Shell Komut Dosyasında Bir Dosya veya Dizinin Var Olup Olmadığı Nasıl Kontrol Edilir

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