У меня есть неработающий скрипт о проверке, пуста ли переменная, и на основе этого создайте следующую переменную и экспортируйте ее.
export VARIABLE=macmac123
if [ -z "$VARIBLE" ]
then
unset $VAR2
else
export VAR2 = "test"
fi
Затем я запускаю этот сценарий ./script.sh, а затем запускаю echo $ VAR2 ничего не показывает. Любые идеи? Я не могу изменить весь скрипт, потому что он мне нужен, но он ничего не экспортирует в переменные окружения.
Переменные среды наследуются дочерними процессами. Изменение переменных в скрипте не влияет на родительский процесс.
Вам необходимо использовать source scriptname для запуска сценария в текущем процессе оболочки, чтобы он изменил свои переменные.
Дополнительно нужно исправить опечатку: "$VARIBLE" -> "$VARIABLE"





Сценарии оболочки выполняются в подоболочке. Если вам нужны переменные в текущей оболочке, вы должны source скрипт, например: source script.sh или . script.sh (точка - это псевдоним для source).
Все наоборот: source является синонимом . - «точка» была изобретена впервые в оболочке Bourne.
Вы не используете
$при обращении к переменной с помощьюunset