regex para validar cadeia de um valor variável

0
var1="temp-pprod-deployment"

Precisa de um script de shell para o caso de uso abaixo;

se a variável acima $ var1 value contiver string "prod", execute uma mensagem de impressão, por exemplo. echo "Found" else echo "Não encontrado"

    
por itgeek 25.10.2018 / 22:02

2 respostas

0

Você pode fazer algo assim:

var1="temp-pprod-deployment"
if 'echo "$var1" | grep -q "prod"' ;then
   echo "\$var1 contains word 'prod'"
else 
   echo "Not found."
fi

Explicação: Você está obtendo a saída da variável e canalizando-a para grep para regex. A opção -q , significa retornar 0 em sucesso (true) e 1 em falha (false), que é test -ed com if .

    
por 25.10.2018 / 22:16
0

Use o bashes / operator para remover a string de teste do conteúdo da variável, e veja se essa operação a mudou. Se tiver, você sabe que a string está presente:

$ var1="temp-pprod-deployment"
$ var2="temp-pdev-deployment"
$ [ "${var1/prod}" == "$var1" ] && echo not found
$ [ "${var2/prod}" == "$var2" ] && echo not found
not found
$ [ "${var1/dev}" == "$var1" ] && echo not found
not found
$ [ "${var2/dev}" == "$var2" ] && echo not found

Em total conformidade com o OP:

if [ "${var1/prod}" != "${var1}" ]
then
  echo "Found."
else
  echo "Not found."
fi
    
por 25.10.2018 / 22:29

Tags