조건식과 정규식의 구문 비교

조건식과 정규식의 구문 비교

내 Ubuntu 컴퓨터에서 아래 코드를 실행하려고 시도했지만 "조건식의 구문 오류" 및 "'0-9' 근처의 구문 오류"가 계속 표시됩니다. 이유를 알려주실 수 있나요?

while ! [[ $num =~ ^[ 0-9 ] +$ && $num = 0 ]] ; do 

답변1

while을 대문자로 쓰면 안 되지만, 이 질문을 입력할 때만 그런 일이 발생한다고 생각합니다. 그렇지 않으면 다른 오류가 발생합니다.

문제는 정규 표현식이 잘못되었기 때문일 수 있습니다.

[ 0-9 ]공백이 없어야 합니다 [0-9]. 그러나 일단 수정하면 +$그 사이의 공백도 탈출해야 하기 때문에 다른 오류가 발생합니다.

while ! [[ $num =~ ^[0-9]\ +$ && $num = 0 ]] ; do 

일반적으로 확장 테스트에 사용하기 위해 이러한 패턴을 변수에 저장하는 것이 더 좋습니다.

pattern='^[0-9] +$'
while ! [[ $num =~ $pattern && $num -eq 0 ]]; do

관련 정보