bash if 문 질문이 있습니다.
글쓴이: winsowss / 작성시간: 수, 2011/08/17 - 1:39오후
좀전에도 질문 올렸었는데요
if [ "$1" -ge "10" -a "$1" -le "100" -o "$1" = "test" ]
이런식으로 하니깐 test가 들어가면 들어오길 들어온 것은 정수인데 문자가 오니깐
오류를 띄우더라고요.....
그래서 질문인데요
만약에 전달받은 인자가 문자면 "문자다" 라고 찍어주고
정수면 "숫자입니다" 라고 찍어주는 스크립트는 어떻게 해야될까요..
for문을 돌리면서 전체 전달받은 인자가 문자인지 숫자인지 검사하고 싶은데 쉽지가 않네요.
for r in $*
do
if [ "$r" -ge "1" -a "$r" -le "100" ]
then echo "숫자"
elif [ ?? ]
then echo "문자"
fi
done
이런식인데요 test라는 문자를 입력하게 되면 위에 if문에서 막히네요..
integer expression expected
이런 에러가 뜹니다. 도와주세요!
Forums:
arg=$1 check=`echo $arg |
arg=$1
check=`echo $arg | bc`
if [ "$arg" -eq "$check" ];then
echo "int"
else
echo "string"
fi
대략 이정도면 동작하겠네요.
sed로...
#!/bin/bash
for arg in $*
do
A=`echo $arg | sed 's/[0-9]//g'`
if [ -z $A ];then
echo "$arg is a number"
else
echo "\"$arg\" includes some string, that is \"$A\""
fi
done
sed를 이용해서 숫자부분을 모두 없애서 string 의 길이가 zero면 숫자, 아니면 문자!
댓글 달기