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

  • DigitalRev TV

    DigitalRev T

    30 AĞUSTOS 2007
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009
  • Slave Boy Films - Fandom from a Galaxy Far Far Away

    Slave Boy Fi

    12 HAZİRAN 2009