2013-08-08 20 views
9

$counter değişkenimde sakladığım değer 5'dan büyük olduğu sürece çalıştırmam gereken bir if ifadem var.Değişkenini kabuktaki tamsayı ile karşılaştır?

İşte benim şimdiki (çalışmayan) script ilgili bölümdür:

if $counter > 5 
then 
    echo "something" 
fi 

ben yapıyorum hata muhtemelen çok açıktır, ama nedense ben online çözüm bulamadık. Teşekkürler!

cevap

20

Kuyu:

if [ "$counter" -gt 5 ] 
then 
    echo "something" 
fi 
+1

'sh' uyumluluğuna ihtiyacınız olmadıkça,' ['ve'] 'yerine' ['ve']] 'yi kullanmak daha iyidir. Elbette, http://mywiki.wooledge.org/BashFAQ/031 – Thomas

+0

. Başlıkta bash bahsetmediğini görmek için uyumluluk anlamına geliyor. – konsolebox

+0

@konsolebox, sorunun altındaki etiketlere bakmanız gerekiyor. Başlıklar genellikle yanıltıcıdır. –

11

Aritmetik (( ve )) arasında yapılması gereken: onu tutmak için zarar vermez gerçi

if (($counter > 5)) 

arada, aynı zamanda, aritmetik $ kapalı bırakabilirsiniz. oldukça basittir

+0

Evet ancak, iddia ediyorum koşullu ifadeler '' [[]] yapılmalıdır. Öyleyse hangisi olmalı? [[]] 'Yi seçerdim. Benim argümanlarımı buradan görebilirsiniz: http://stackoverflow.com/a/18568726/445221. (Referans için yorum yapıyor). – konsolebox