[Shell Script] 값이 정수인지 확인하여 계산
값이 정수인지 확인하여 계산
expr 명령어 등으로 계산하기 전에 변숫값이 정수인지 확인하고 싶을 때 사용하는 스크립트입니다 .
#!/bin/sh
test "$1" -eq 0 2>/dev/null #1
if [ $? -lt 2 ]; then #2
echo "Argument is Integer."
expr 10 + $1
else
echo "Argument is not Integer."
exit 1
fi
해설
#1에서 인수 확인을 합니다 . test 명령어를 사용하여 명령행 인수가 0과 같은지 -eq 연산자로 확인합니다 .
test 명령어 출력 결과 자체는 필요 없으므로 표준에러 출력은 /dev/null로 리다이렉트 후 버립니다 .
#1의 종료 스테이터스($?) 은 다음과 같습니다
- 명령행 인수가 0과 같으면 0
- 명령행 인수가 0이 아니면 1
- 명령행 인수가 0과 비교 불가능한 문자열이면 2
따라서 #2에서 종료 스테이터스를 비교하여 2보다 작으면 정수로 보고 그대로 계산하고 아니라면 에러 메세지를 출력 후 종료합니다 .
댓글
댓글 쓰기