Я сталкиваюсь со странной проблемой. У меня виртуальный компьютер с Solaris 11, и я пытаюсь написать несколько скриптов bash.
если на оболочке я наберу:
export TEST=aaa
и впоследствии запустите:
set
Я правильно вижу новую переменную среды с именем TEST, значение которой aaa. Если, однако, я делаю в основном то же самое в сценарии. когда скрипт завершается, я не вижу набор переменных. Чтобы сделать конкретный пример, если в файле test.sh у меня есть:
#!/usr/bin/bash
echo 1: $TEST #variable not defined yet, expect to print only 1:
echo 2: $USER
TEST=sss
echo 3: $TEST
export TEST
echo 4: $TEST
это печатает:
1:
2: daniele
3: sss
4: sss
и после его выполнения TEST не устанавливается в оболочке. Я что-то пропустил? Я попытался сделать экспорт TEST = sss и отдельную переменную set / export без разницы.
Чтобы сделать ваши переменные видимыми, вам нужен
source
скрипт, который экспортирует ваши переменные. Смman source
.источник
help source
вместо этого вы хотите использовать bash.