O significado de [$? == 1] && return 0

1

Eu preciso entender este comando:

[ $? == 1 ] && return 0
    
por benchabane morad 21.05.2018 / 22:31

1 resposta

5

A expressão $? é avaliada como o código de saída do comando anterior.

&& é um separador de comando que executará o segundo comando se e somente se o primeiro comando retornar um código de saída igual a zero.

[ ou test é uma ferramenta de shell para fazer vários testes comparativos.

Devo salientar que == é o teste errado para usar aqui, já que é para a comparação string ; -eq é o teste de igualdade para a comparação numérica .

Portanto: [ $? -eq 1 ] && return 0 examinará o código de saída do comando imediatamente anterior e comparará com 1 . Se houver uma correspondência, o comando return 0 será executado (ignorando, portanto, o que presumo serem comandos subseqüentes na função em que esse teste se encontra).

A distinção entre o uso de == e -eq é que [ 01 -eq 1 ] é verdadeiro, enquanto [ 01 == 1 ] é falso.

    
por 21.05.2018 / 22:34