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

  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • Hollyscoop

    Hollyscoop

    30 Ocak 2007