логика этого куска башки - PullRequest
0 голосов
/ 26 марта 2019

Не в состоянии понять, что это делает

TEST_DEBUG=${TEST_DEBUG:-false}
[[ "$TEST_DEBUG" == false ]] || TEST_DEBUG=true

и далее далее код в нескольких местах .. этот код присутствует

$TEST_DEBUG && echo 1>&2

Ответы [ 2 ]

2 голосов
/ 26 марта 2019
TEST_DEBUG=${TEST_DEBUG:-false}

Это задание false до $TEST_DEBUG, если оно уже не имеет значения (см. Расширение параметра в man bash).

[[ "$TEST_DEBUG" == false ]] || TEST_DEBUG=true

Условие внутри [[ ... ]] возвращает истину, когда $TEST_DEBUG имеет значение false.Если он возвращает false, то есть значение отличается, то $TEST_DEBUG присваивается true.

$TEST_DEBUG && echo 1>&2

. При этом echo запускается, только если $TEST_DEBUG установлено на true.

echo без параметров просто выводит пустую строку на стандартный вывод.1>&2 перенаправляет стандартный вывод на стандартную ошибку, поэтому в этом случае пустая строка печатается со стандартной ошибкой.

0 голосов
/ 26 марта 2019

В первом операторе оператор: - Проверяет, существует ли переменная TEST_DEBUG в фигурных скобках и задана ли она, если она задана, ей присваивается значение в TEST_DEBUG, если не задано или имеет нулевое значение, ей присваивается ложный.

TEST_DEBUG=${TEST_DEBUG:-false}

во втором утверждении

[[ "$TEST_DEBUG" == false ]] || TEST_DEBUG=true

Bash проверяет, установлено ли для * 1012 значение false, если нет, то присваивает ему значение true.

для получения дополнительной информации о том, как это работает подробно, пожалуйста, ознакомьтесь с документацией по GNU bash.

https://www.gnu.org/software/bash/manual/html_node/Conditional-Constructs.html#Conditional-Constructs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...