Я обнаружил странное поведение при использовании set -e
. Простой код: [ ${var} } && echo "text"
отлично работает вне функции, но заставляет скрипт завершать работу, когда тот же код находится в функции. Это происходит только в том случае, если var=""
.
. Код также работает нормально, если я использую ||
или если я установил переменную в переменную. У кого-нибудь есть объяснение этому?
#!/bin/bash
#version 4.4.20(1)
#set -x
set -e
var=
[ ${var} ] && echo "Test before function"
echo "Before function"
function test {
[ ${var} ] && echo "Test inside function"
}
test
echo end