Resultado da condição de teste Bash

1

Tendo o código:

if [ 0 ]      
then
  echo "0 is true."
else          
  echo "0 is false."
fi

Por que o resultado é echo "0 is true. ??? Isso significa que o bash avalia 0 (dígito zero) como true ?

    
por Mulligan 12.01.2017 / 17:55

1 resposta

4

Significa que o bash avalia 0 (dígito zero) como true ?

Sim.

[ str ] checks whether str is non-empty. It doesn't matter if str is 0, it will still be evaluated for non-emptyness.

A [0] é verdadeira. Use 'false' em vez

The test and [ builtins evaluate conditional expressions using a set of rules based on the number of arguments.

0 arguments

   The expression is false.

1 argument

   The expression is true if and only if the argument is not null.

Teste de origem

Leitura Adicional

por 12.01.2017 / 18:05

Tags