2012-01-02 6 views
1

私は、ユーザー入力が有効かどうかを確認する必要があるスクリプトを実行しようとしています。私はそれを理解できません。さまざまな方法を試してきましたが、解決策を見つけることができません。だからそこにビジーボックスの灰の達人がいるなら、私はすべての助けに満足している。ビジーボックスで有効な番号を確認しますか?

if ! [[ $ANS =~ ^[0-9][.0-9]*$ ]]; then 
    echo "abort" 
else 
    echo "go on" 
fi 

ユーザーが数字を入力したかどうかを確認します。 10進数の数値も使用できます。そうでなければ中断するはずです。同じ

は、私は16進数が使用されているかどうかを確認するためにそれを必要とする。..

if ! [[ $ANS =~ ^[0-9A-Fa-f]{6}$ ]] ; then 
    echo "abort" 
else 
    echo "go on" 
fi 

となります。私が得るのは「未知のオペランド」だけです。

+1

、使用しているシェル? –

+0

@GregHewgill Busybox .. Ash – AlMehdi

答えて

1

それはハックのビットを感じますが、このためにegrepを使用することができます。

$ ANS=10.2 
$ echo -n $ANS | egrep -q '^[0-9]*[.]?[0-9]*$' && echo success || echo failure 
success 
$ ANS=10.2.2 
$ echo -n $ANS | egrep -q '^[0-9]*[.]?[0-9]*$' && echo success || echo failure 
failure 
+1

@サモールドありがとう!出来た。私は 'もし!エコー-n $ ANS | egrep -q '^ [0-9] [。0-9] * $';エコー "中止"; else if echo "go on"; if 'if文で必要とするように。 ;) – AlMehdi