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

  • Harvest: Greg Laurie

    Harvest: Gre

    6 HAZİRAN 2006
  • Mr. H

    Mr. H

    1 Temmuz 2012
  • Sali Kaceli

    Sali Kaceli

    24 ŞUBAT 2009