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

  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • ehowhome

    ehowhome

    22 NİSAN 2009
  • Techmoan

    Techmoan

    31 Mayıs 2009