Bash 스크립트에서 Symfony 버전 번호를 얻기 위해 정규식을 사용하려고 합니다.

Bash 스크립트에서 Symfony 버전 번호를 얻기 위해 정규식을 사용하려고 합니다.

bin/console --version저는 터미널에서 Symfony 프로젝트를 호출할 때 Symfony 4.4.3 (env: dev, debug: true) 명령 결과가 실제로 예상 패턴과 일치하는지 확인하기 위해 일치 작업을 수행하는 것을 좋아합니다.

다음 스키마가 있습니다.https://regex101.com/r/n2hBR8/1

Bash 스크립트에서 몇 가지를 시도했지만 제대로 작동하지 않습니다.

#symfonyVersionRegex="Symfony\s\d{1}.*"
#symfonyVersionRegex="^Symfony\s\d{1}.*$"
symfonyVersionRegex="^Symfony\s\d.*$"

symfonyVersionRaw=`bin/console --version`

if [[ symfonyVersionRaw =~ $symfonyVersionRegex ]]; then
    echo Version number found
else
    echo Version number NOT found
fi

echo SymfonyVersionRaw를 실행하면 예상되는 버전 문자열을 얻게 되므로 작동하지만, 무엇을 시도하더라도 항상 부정적인 결과("버전 번호를 찾을 수 없음")가 나타납니다.

답변1

우선, 실수가 있다고 생각합니다. $앞에 두지 않았습니다 symfonyVersionRaw.

[0-9]그런 다음 숫자를 또는 와 일치 시켜야 합니다 [[:digit:]].

여기를 살펴보세요:정규식에서 숫자를 일치시키는 방법.

관련 정보