Numeric key처리 error ??
글쓴이: hyper9 / 작성시간: 목, 2008/09/18 - 2:47오전
아래와 같은 code를 사용해서 partition1에 할당할 size를 받아들이고
있었는데요..
option=0
size=$total_size
while [[ $option -le 0 || `expr $size - $option` -lt 0 ]] ; do
read -p " Size of Partition1 [ Max : $size MB]: " option
if [ "$option" = "" ] ; then
option=0
fi
done
size=$option
size=`expr $size - $size1`
실수로..NumLock key를 누르지 않고,,numeric key를 입력하니 아래와 같은 Error가
발생을 하네요..
Size of Partition1 [ Max : 10000 MB ]:
line 83: [[: : syntax error: operand expected (error token is "")
expr: non-numeric argument
expr: non-numeric argument
숫자가 들어가지 않고,,화살표키가 들어가서 그런지,,전혀 못 보던 에러가 갑자기 보이는데요
이런 경우는 어떻게 처리를 해야할까요?
조언 부탁 드립니다..감사합니다. ^^
Forums:
다시 문제를 재현해 보았습니다..
위의 script에 partition으로 지정해 주고 싶은 만큼의 숫자를
입력해야 하는데,,이걸 Keyboard 오른쪽의 Numeric Key(이렇게 부르는 게
맞는지 모르겠네요..)를 사용하려고 하다가 실수고 NumLock Key를 누르지 않고
Numeric Key를 누른 후에 다시 NumLock Key를 다시 누르고 계속 해서 숫자를
입력해도 Error가 납니다..
예를 들면 이런 과정으로 '->' '1' '0' '0' 이렇게 4개의 key가 들어가는 셈인데요
이럴때 error가 나는 걸 어떻게 막을 수 있을까요?
들어오는 Key중에서 특수키를 걸러내야할 것 같은데요,,Shell에서는 어떻게 이런
일을 하는지 잘 몰라서요 ..
조언 부탁 드립니다...감사합니다..
아래와 같이 해결했습니다..
read -p " Size of Partition1 [ Max : $size MB]: " option
아래에,,
option=${option//[!0-9]/}
이렇게 넣어보니 동작을 제대로 하는 것 같네요.
만일 이렇게 한게 뭔가 문제가 있을 것 같다면, 조언 주시기 바랍니다. ^^
다시 문제가 보이네요 ㅜㅜ
위와 같이 수정하고 나서는 Numeric Keypad의 화살표 key는
잘 걸러냈는데,,이상하게 Home, End, PgUp, PgDn key는
못 걸러내는 것 같은데요 ~
그건 왜 그럴까요 ?
좀 더 시험을 해보았습니다..
NumLock키를 끄고 나서 입력값을 찍어보면요,,
Home key는 '1'을 입력한 것처럼 보이고,
PgUp key는 '5'를 입력한 것처럼 보이고,
End key는 '4'를 입력한 것처럼 보이고,
PgDn key는 '6'을 입력한 것 처럼 보이네요..
왜 이럴까요? ㅜㅜ
댓글 달기