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

  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011
  • Michelle Phan

    Michelle Pha

    18 Temmuz 2006
  • Randall P Studios

    Randall P St

    27 AĞUSTOS 2009