정규 표현식과 일치하지 않습니다.

정규 표현식과 일치하지 않습니다.

사용자 정의 JBoss를 설치하는 Bash 스크립트가 있습니다. JBoss 인스턴스 이름을 정규 표현식과 비교하여 유효한 이름인지 확인하세요.

if [[ ! $1 =~ $instanceNameRegex ]]; then
    exit 1
fi

이제 두 번째 유효한 정규식이 필요합니다. 즉, 이름은 $instanceNameRegex또는 와 일치해야 합니다 $secondInstanceNameRegex.

if테스트에서 어떻게 이를 달성할 수 있나요 ? 나는 이것을 찾고 있지만 작동시킬 수 없습니다.

if [[ [ ! $1 =~ $instanceNameRegex ] -a [ ! $1 =~ $secondInstanceNameRegex ] ]]; then

즉, 인수가 첫 번째 정규식과 일치하지 않고 두 번째 정규식과 일치하지 않으면 종료됩니다.

답변1

넌 할 수있어

if [[ ! $1 =~ $instanceNameRegex && ! $1 =~ $secondInstanceNameRegex ]]; then

나는 다음을 사용할 것이다:

if [[ ! ( $1 =~ $instanceNameRegex || $1 =~ $secondInstanceNameRegex ) ]]; then

답변2

이것은 당신에게 도움이 될 수 있습니다:

if [[ ! $1 =~ "${instanceNameRegex}|${secondInstanceNameRegex}" ]]; then

관련 정보