특정 패턴 BASH를 기반으로 사용자 입력 유효성을 검사합니다.

특정 패턴 BASH를 기반으로 사용자 입력 유효성을 검사합니다.
if ($input !~ [[:upper:-]][[:digit:]][[:digit:]][[:digit:-]][[:digit:]][[:digit:]][[:digit:]]) then
   goto error1
else
   echo $input
endif

위의 코드를 사용하여 "P-70-90" 패턴을 일치시키려고 시도했지만 작동하지 않습니다.

cShell에서 시도하고 있는데 bash 형식도 가능합니다.

답변1

마침내 해결책을 찾았습니다.

#!/usr/bin/bash

REGEX='^[[:upper:]]-([0-9]{2}|[0-9]{3})-([0-9]{2}|[0-9]{3})$'

CHECK="P-70-56"

if [[ ! $CHECK =~ $REGEX ]]
then
    echo "Not ok"
else 
    echo "ok"
fi

관련 정보