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

  • David Wills

    David Wills

    31 Aralık 2007
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008