Результат теста Bash

Имея код:

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

Почему результат echo "0 is true.??? Означает ли это, что Bash оценивает 0 (ноль цифр) как true?

1 ответ

Решение

Означает ли это, что Bash оценивает 0 (ноль цифр) как true?

Да.

[ str ] проверяет, str не пусто. Не имеет значения, если str является 0, он все равно будет оцениваться на непустоту.

Источник [ 0 ] это правда. Вместо этого используйте "ложь"

test а также [ Встроенные функции оценивают условные выражения с использованием набора правил, основанных на количестве аргументов.

0 аргументов

   The expression is false.

1 аргумент

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

Исходный тест


Дальнейшее чтение

Другие вопросы по тегам