Bu kılavuzun odak noktası, sisteminizde bir dosyanın varlığını bash komut dosyası aracılığıyla tartışmaktır:
Bash komut dosyası kullanarak dosya varlığı nasıl kontrol edilir:
1) Terminalde dosya adını girerek:
Öncelikle bir bash betik dosyası oluşturmamız gerekiyor, aşağıda belirtilen komutu kullanın:
$ dokunmatik test dosyası.şOluşturduğum dosyanın adı “testfile.ş”, “.sh” uzantısı kabuk komut dosyasını belirtir:
Test dosyasını açın.sh” herhangi bir metin düzenleyicide. Ardından betiği yazın, “kaydet”e basarak kaydedin.
Bir yol, terminaldeki kullanıcıdan bir dosya adı isteyerek bir dosya bulmaktır.
"-f” dosyanın varlığını kontrol etmek için.
Aşağıdaki komut dosyasını yazın:
#!/bin/bashecho "Dosya adınızı giriniz"
yeni dosya1 oku
eğer [ -f "$newfile1" ]
sonra
echo "Dosya bulundu"
Başka
echo "Dosya bulunamadı"
fi
Terminale geri dönün ve çıktıyı yazdırmak için dosyayı çalıştırın:
./dosya adı.şİzin reddedildi mesajı terminalde görüntülenecek.
Aşağıda belirtilen komutu yürüterek yürütülebilir hale getirin:
$chmod +x test dosyası.ş
Dosya adını girin, çıktıyı yazdıracaktır:
2) Komut dosyasını yazarken dosya adını girerek:
Komut dosyasını yazarken dosya adını vererek bir dosyayı bulmanın başka bir yolu. Dosyanın kullanılabilirliğini kontrol etmenin üç yolu var. Birincisi “test” komutunu kullanıyor, ikincisi köşeli parantez içindeki bir ifadeyle “if” kullanıyor ve üçüncüsü de aşağıda belirtildiği gibi “if” ama çift köşeli parantez ile:
- “TEST İFADE.”
- “eğer [ İFADE ]”
- “eğer [[ İFADE ]]”
Örneklerle anlayalım:
1) test [ İfade ]
Verilen komut dosyasını kopyalayın ve düzenleyiciye yapıştırın, kaydedin:
dosya adı=dosya1
eğer test -f "$dosyaadı";
sonra
echo "$dosya bulundu."
Başka
echo "$dosya bulunamadı"
fi
Çıktı:
Dizinimde böyle bir dosya olmadığı için kodda “Dosya bulunamadı” mesajı görüntüleniyor.
2) eğer [ İfade ]
Dosyanın var olup olmadığını kontrol etmek için aşağıdaki komut dosyasını kopyalayın:
#!/bin/bashdosya adı=dosyam.Txt
if [ -f "$dosyaadı" ];
sonra
echo "$dosya adı bulundu."
Başka
echo "dosya adı bulunamadı"
fi
Çıktı:
3) eğer [[ İfade ]]
Aşağıda yazılan komut dosyasını kopyalayın ve terminale yapıştırın:
#!/bin/bashdosya adı=test dosyası
if [[ -f "$dosyaadı" ]];
sonra
echo "$dosya adı bulundu."
Başka
echo "$dosya adı bulunamadı"
fi
Çıktı:
Dizini kontrol etmek için:
3) Komut dosyası yazarken dizin adını girerek
Kullan "-d” Bir dizinin varlığını kontrol etmek için bayrak.
Aşağıda belirtilen komut dosyasında “dir11”, bulduğunuz dosyayı içinde sakladığınız değişkendir; bu örnekte, “testDir” dizin adının var olup olmadığını kontrol etmek istiyorum.
#!/bin/bashdir11=testDir
eğer [ -d "$dir11" ]
sonra
echo "Dizin bulundu"
Başka
echo "Dizin bulunamadı"
fi
Çıktı:
2) Terminalde dosya adını girerek:
Terminalde dizinin var olup olmadığını kontrol etmek için komutu çalıştırdığınızda, aradığınız dizin adını girmeniz gerekir:
echo "dizin adınızı yazın."
Dir1'i oku
eğer [ -d "Dir1" ]
sonra
echo "dizin bulundu"
Başka
echo "dizin bulunamadı"
fi
Çıktı:
Dosyayı “if” deyimini kullanmadan kontrol etmek:
“test” komutu, “if” ifadesi olmadan çalıştırılabilir. Yalnızca dosya varsa çıktıyı görüntüler; aksi takdirde çıktı olmazdı:
Senaryo yaz:
- test -f dosyam.txt && echo "dosya bulundu"
- [ -f dosyam.txt ] && echo "$dosya bulundu."
- [[ -f dosyam.txt ]] && echo "$dosya bulundu."
Çıktı:
“İf” ifadesini kullanmadan dizini kontrol etme:
Bir dizinin var olup olmadığını kontrol etmek için aşağıda belirtilen ifadeleri kullanın:
- [[ -d testDir ]] && echo "dizin var"
- 2) [ -d testDir ] && echo "dizin var"
Çıktı:
Birden fazla dosya/Dizin kontrol edilmesi:
1) “if” ifadeleriyle birden fazla dosyayı kontrol etme:
Çeşitli dosyaların varlığını kontrol etmek için iç içe "if/else" ifadeleri kullanmak yerine "-a" işaretini kullanın:
eğer [ -f yeni_dosya.txt -a -f yeni dosya.Txt ]; sonra
echo "Her iki dosya da mevcut."
fi
Başka bir yol:
#!/bin/basheğer [[ -f yeni_dosya.txt && -f yeni dosya.Txt ]]; sonra
echo "Her iki dosya da mevcut."
fi
Çıktı:
2) “if” ifadesini kullanmadan birden fazla dosyayı kontrol etmek:
Birden fazla dosyayı aynı anda 1 "if" kullanmadan kontrol etmek için aşağıdaki ifadeyi kullanın:
- [[ -f yeni_dosya.txt && -f yeni dosya.txt ]] && echo “Her iki dosya da çıkıyor.”
- [[ -f yeni_dosya.txt && -f yeni dosya.txt ]] && echo “Her iki dosya da çıkıyor.”
Çıktı:
Sonuç:
Bu makale, bir dosyayı veya dizini kontrol etmek için bash komut dosyasının nasıl kullanılacağını göstermiştir. Bir dosyanın kullanılabilirliğini kontrol etmek için farklı seçenekler kullandık. Öncelikle farklı flaglar ile “test” komutunu kullanıyoruz. Daha sonra dosya veya dizini kontrol etmek için “if”, iç içe “if-else” ve “if” ifadeleri olmadan kullanımını öğrendik. Ayrıca birden fazla dosya veya dizinin nasıl kontrol edileceğini de inceledik.