Basta modificar sua condição se como abaixo: -
#!/bin/bash
a="abc"
b="abc"
c="deftdgr"
d="def"
if [[ $a = "$b" && $c == "$d"* ]]
then
echo "inside if loop"
#break you don't need this at all
else
echo "inside else loop"
fi
Estou preparando um script para comparar 4 variáveis usando a instrução single if.
Abaixo está meu script:
#!/bin/bash
a="abc"
b="abc"
c="deftdgr"
d="def"
if [[ $a = $b && $d = ]]
then
echo "inside if loop"
break
else
echo "inside else loop"
fi
Minha pergunta é:
Existe alguma maneira eu posso usar qualquer curinga para comparar $d
e $c
para que tge if
declaração retorna verdadeiro valor. E a saída vem como "dentro de loop"?
Isso é chamado de operador lógico AND
, lógico.
exp1 -a exp2 returns true if both exp1 and exp2 are true.
Se você estiver usando strings, faça:
if [[ condition1 && condition2 ]]; then echo "blah" ; fi
Uma maneira de expressar isso:
if [[ "$a" == "$b" && "$a" == "$c" ]]
Ao comparar números, você faz:
if (( (a == b) && (a == c) )); then echo "blah" ; fi
Doc clique
Tags wildcards shell-script