Ошибка UNBOUND VARIABLE возникает из-за того, что вы используете set -u
, ссылаетесь с $UNBOUND_VARIABLE
на переменную с именем _UNBOUND_VARIABLE_, которая не была назначена, в операторе
VAR="SOME/TEXT/$(basename "$UNBOUND_VARIABLE")"
. set -e
имеет эффект , так как подоболочка this выполняется, т.е.
(source "$(pwd)/$__f")
прерывается. Хотя подоболочка из-за этого прерывания действительно возвращается с ненулевым кодом выхода, но это не запускает выход из родительского процесса, потому что у вас есть || return
справа. По той же причине команда
false || echo x
не завершит выполнение, даже если одиночная
false
завершит.