export
экспортирует присвоение переменной дочерним процессам оболочки, в которой выполняется export
команда была выполнена. Ваша среда командной строки - это родитель оболочки скрипта, поэтому он не видит присвоение переменной.
Вы можете использовать .
(или source
) команда bash для выполнения команд скрипта в текущей среде оболочки и достижения желаемого, например
source ./script.shecho "$BASE"
Будет производить
/home/develop/trees
То source
команда, часто встречающаяся в скриптах, является синонимом bash для .
, который является частью стандарта POSIX (так .
доступен, например, в dash, но source
это не так).
. ./script.sh # identical to "source ./script.sh"
(. script.sh
и source script.sh
будет сначала искать script.sh
в PATH
, так что безопаснее указать путь к script.sh
.)