Bash - IF e && sintaxe?

2

Eu poderia usar uma pequena ajuda com o meu IF e & amp; & amp; declaração. Não está funcionando e nada que eu estou tentando está funcionando também. Talvez alguém possa ver o problema:

if [[ $thisvariable="yes" && grep 'this string' ./"$thisfile".txt ]]; then

Isso simplesmente não funciona. Alguém vê um problema?

    
por BeMy Friend 18.03.2015 / 01:28

4 respostas

1

Tente isto:

if [[ "$thisvariable" = "yes" ]] && grep -q 'this string' ./"${thisfile}".txt; then
    
por Cyrus 18.03.2015 / 04:21
1

A construção [ não pode aceitar várias condições. O que você está tentando pode ser escrito de várias maneiras:

if [ "$thisvariable" = "yes" ] && grep 'this string' ./"thisfile" > /dev/null
then 
    echo yes; 
fi

ou, mais simplesmente

[ "$thisvariable" = "yes" ] && grep 'this string' ./"thisfile" > /dev/null && echo yes
    
por terdon 18.03.2015 / 12:58
0

De: link

if [ "$a" = "$b" ]

Cuidado !, observe o espaço em branco que enquadra o "=".

if [ "$a"="$b" ] is not equivalent to the above.
    
por Josue Abarca 18.03.2015 / 01:42
0

Estou vendo agora o último post, então não tentei. Eu finalmente consegui trabalhar com isso:

if [ $thisvariable == yes ] && [ "'grep 'this string' ./"thisfile"'" ]; then
    
por BeMy Friend 18.03.2015 / 04:56