SORU
2 Temmuz 2012, PAZARTESİ


Nasıl bir dosya belirli bir dize bash kullanan varsa kontrol etmek için

Eğer bir dosya belirli bir dize içeriyorsa ya da bash istiyorum. Bu komut kullandım ama işe yaramıyor:

 if [[ 'grep 'SomeString' $File' ]];then
   Some Actions
 fi

benim kodda yanlış olan ne?

CEVAP
2 Temmuz 2012, PAZARTESİ


 if grep -q SomeString "$File"; then
   Some Actions
 fi

[[ ]] burada gerek yok. Sadece Çalıştır komutunu doğrudan. Dize bulunduğunda görüntülenen ihtiyacın olmadığında -q seçenek ekleyin.

Çıkış kodu bağlı olarak grep komut verir 0 veya 1 arama sonucu. Eğer bir şey bulunursa 0; aksi halde 1.

$ echo hello | grep hi ; echo $?
1
$ echo hello | grep he ; echo $?
hello
0
$ echo hello | grep -q he ; echo $?
0

if bir koşulu olarak komutları belirtebilirsiniz. Eğer komutu 0 exitcode döner eğer bu koşul doğru ise; aksi halde false anlamına gelir.

$ if /bin/true; then echo that is true; fi
that is true
$ if /bin/false; then echo that is true; fi
$

Gördüğünüz gibi burada programları doğrudan çalıştırın. Ek [] [[]].

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BroadCity

    BroadCity

    10 ŞUBAT 2010
  • Ownage Pranks

    Ownage Prank

    13 AĞUSTOS 2007
  • Vagrant Records

    Vagrant Reco

    8 Mayıs 2006