A verificação se / então do meu script bash está sempre sendo avaliada como true

0

Eu estava tentando escrever um script bash para lidar com um switch condicional, e ele continuava sendo avaliado como true todas as vezes. Então, eu reduzi a isso a isso, e eu estava recebendo o mesmo comportamento dele sempre ecoando qualquer parâmetro que eu enviei, em vez de apenas enviar -c :

myfunc(){
if [[ $1 == "-c" ]];
  then
    echo $1
  fi
}
    
por kayleeFrye_onDeck 07.03.2016 / 21:54

1 resposta

0

Embora não possa responder por que isso sempre foi avaliado como verdadeiro, consegui corrigi-lo. Acabei tendo que remover as aspas do switch, fazendo com que a versão de trabalho fosse assim:

myfunc(){
if [[ $1 == -c ]];
  then
    echo $1
  fi
};

Por sugestão do Darth Android , basta manter as aspas consistentes entre as duas comparações, o que é mais seguro .

myfunc(){
if [[ "$1" == "-c" ]];
  then
    echo $1
  fi
};
    
por 07.03.2016 / 21:54