Você pode fazer
if [[ ! $1 =~ $instanceNameRegex && ! $1 =~ $secondInstanceNameRegex ]]; then
Eu usaria em vez disso:
if [[ ! ( $1 =~ $instanceNameRegex || $1 =~ $secondInstanceNameRegex ) ]]; then
Eu tenho um script Bash que instala um JBoss personalizado. O nome da instância do JBoss é verificado em relação a uma expressão regular para garantir que o nome seja válido:
if [[ ! $1 =~ $instanceNameRegex ]]; then
exit 1
fi
Agora temos um requisito para uma segunda regex válida. ou seja, o nome deve corresponder a $instanceNameRegex
ou $secondInstanceNameRegex
.
Como faço isso no teste if
? Estou procurando por isso, mas não consigo trabalhar:
if [[ [ ! $1 =~ $instanceNameRegex ] -a [ ! $1 =~ $secondInstanceNameRegex ] ]]; then
, ou seja, se o parâmetro não corresponder ao primeiro regex E não corresponder ao segundo e, em seguida, sair.
Isso pode funcionar para você:
if [[ ! $1 =~ "${instanceNameRegex}|${secondInstanceNameRegex}" ]]; then
Tags bash regular-expression