4

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

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

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

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

и я называю это с

cat vars.txt | source setenv

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

1 ответ1

7

Труба настраивает подоболочку. При выходе из подоболочки переменные теряются.

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

source setenv < vars.txt

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

export $var="$value"

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .