SORU
30 NİSAN 2009, PERŞEMBE


Nasıl bir değişkeni bash bir sayı ise test edebilirim?

Nasıl bir argüman senaryomu geçirilen bir numara ya da değil emin olun. Tek istediğim böyle bir şey

test *isnumber* $1 && VAR=$1 || echo "need a number"

GÜNCELLEME: Başardım (Charles' help) ama hala en iyi yol bu benim testler işe yaradı bile olsa) yapmak emin değilim. Bu nasıl bitti

[[ $1 =~ "^[0-9] $" ]] && echo "number" && exit 0 || echo "not a number" && exit 1

CEVAP
30 NİSAN 2009, PERŞEMBE


Bir yaklaşım, bir düzenli ifade, şu şekilde kullanın:

re='^[0-9] $'
if ! [[ $yournumber =~ $re ]] ; then
   echo "error: Not a number" >&2; exit 1
fi

Eğer değer mutlaka bir tamsayı değilse, uygun şekilde düzenli değiştirilmesi düşünün; örneğin:

^[0-9] ([.][0-9] )?$

...ya da, negatif sayılar işlemek için:

^-?[0-9] ([.][0-9] )?$

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andyabc45

    andyabc45

    1 Mayıs 2011
  • ASUS

    ASUS

    22 EKİM 2005
  • eHow

    eHow

    27 NİSAN 2006