첫번째 argument는 숫자가 아니면 오류메세지를 내보내고싶은데

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

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