2012-01-02 3 views
1

사용자 입력이 올바른지 확인해야하는 스크립트를 작성하려고합니다. 나는 그것을 이해할 수 없다. 다른 방법을 시도해 왔지만 해결책을 찾을 수 없습니다. 그래서 거기에 busybox 재가 지도자가 있다면 나는 모든 도움을 기쁘게 생각합니다.비지 박스에서 유효한 번호를 확인 하시겠습니까?

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

사용자가 숫자를 입력했는지 확인하고 싶습니다. 십진수가있는 숫자도 허용됩니다. 그렇지 않다면 중단해야합니다. 같은

내가 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

@samold 대단히 감사합니다! 그것은 효과가 있었다. 나는'if! '를 사용했다. echo -n $ ANS | egrep -q '^ [0-9] [. 0-9] * $'; 다음에 "abort"를 echo합니다; else if echo "go on"; if' if 문에서 필요하다. ;) – AlMehdi

관련 문제