SORU
15 HAZİRAN 2011, ÇARŞAMBA


Eğer bir dosya kabuk joker ile varsa kontrol edin

Eğer bir dosya olup olmadığını kontrol etmek için çalışıyorum, ama bir joker ile birlikteyim. İşte benim örnek:

if [ -f "xorg-x11-fonts*" ]; then
    printf "BLAH"
fi

Ayrıca çift tırnak işaretleri olmadan denedim.

CEVAP
15 HAZİRAN 2011, ÇARŞAMBA


En basit ls dönüş değeri güvenmek olmalıdır (döndürür dosyaları yok sıfır olmayan):

if ls /path/to/your/files* 1> /dev/null 2>&1; then
    echo "files do exist"
else
    echo "files do not exist"
fi

ls çıkış tamamen sessiz yapmak için oraya yönlendirdim.


EDİT: bu cevap var biraz dikkat (ve çok yararlı eleştirmen açıklamalar olarak yorumlar), burada bir iyileştirme de dayanır kısım genişleme, ama önler kullanım ls:

for f in /path/to/your/files*; do

    ## Check if the glob gets expanded to existing files.
    ## If not, f here will be exactly the pattern above
    ## and the exists test will evaluate to false.
    [ -e "$f" ] && echo "files do exist" || echo "files do not exist"

    ## This is all we needed to know, so we can break after the first iteration
    break
done

Bu @grok12 cevabı çok benzer, ama bütün liste boyunca gereksiz yineleme önler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Besnik Ibrahimi

    Besnik Ibrah

    27 Mart 2010
  • theavettbrothers

    theavettbrot

    9 ŞUBAT 2007
  • TheRightTire

    TheRightTire

    14 EKİM 2009