Почему мой сценарий удара не может экспортировать переменные?

Я использую MSYS и имею файл vars.txt с переменной, оцениваю ключи как:

WINDIR C:/WINDOWS
STS_BUILD_DIRECTORY D:/STS/TMP
ALLUSERSPROFILE C:/Documents and Settings/All Users

Я хочу считать это в и настроить переменные среды. У меня есть сценарий удара setenv:

while read var value;
do
  echo "performing export $var=$value"
  export $var='$value'
done 

и я называю его с

cat vars.txt | source setenv

Однако в моей среде переменные не установлены. Я также пытался превратить его в функцию, но никакую радость. Кто-либо здесь знает то, что я делаю неправильно?Спасибо.

4
задан 17.09.2010, 19:29

1 ответ

Канал настраивает подоболочку. Когда подоболочка выходит, переменные потеряны.

Попробуйте это:

source setenv < vars.txt

Также Ваши одинарные кавычки могут предотвратить расширение переменной (я не знаю, верно ли это в MSYS). Попытайтесь измениться export строка к этому:

export $var="$value"

Можно использовать declare вместо export если переменные не должны быть экспортированы.

7
ответ дан 07.12.2019, 19:56

Теги

Похожие вопросы