Nasıl bir değişkeni bash bir sayı ise test edebilirim? | Netgez.com
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

  • Candyrat Records

    Candyrat Rec

    10 Mayıs 2006
  • Caramthros

    Caramthros

    10 AÄžUSTOS 2007
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011