这段bashquery的逻辑
收藏

不明白这是在干什么

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

在接下来的代码中,在多个地方..这个代码是存在的
$TEST_DEBUG && echo 1>&2


最佳答案:

TEST_DEBUG=${TEST_DEBUG:-false}

除非它已经有一个值(请参见false中的参数展开),否则将$TEST_DEBUG分配到man bash
[[ "$TEST_DEBUG" == false ]] || TEST_DEBUG=true

[[ ... ]]的值为$TEST_DEBUG时,false中的条件返回true。如果返回false,即值不同,则$TEST_DEBUG被赋值true
$TEST_DEBUG && echo 1>&2

只有当echo设置为$TEST_DEBUG时,才会运行true
echo如果没有参数,只会将空行输出到标准输出。1>&2将标准输出重定向到标准错误,因此在本例中,空行将打印到标准错误。

公众号