sh 로 쉘스크립트짜고 있어 근데 첫번째 argument가 숫자가 아니면 오류메세지를 내보내고싶은데

if [ $1 -ne [:digit:] ]; then
echo "argument is wrong"

에서 왜 자꾸 얘가 문자를 쳐도 자꾸 인식하는거야?