Системные переменные среды недоступны в bash-скрипте - PullRequest
0 голосов
/ 01 ноября 2018

Я использую Ubuntu в подсистеме Windows для Linux, и у меня есть скрипт bash, который я хочу запустить и который необходим для доступа к системным переменным среды. В частности, я определил переменную среды в моей системе с помощью следующей команды:

export SLACK_LEGACY_API_TOKEN="Insert Token Here"

Затем я определяю файл с именем slack.sh, который выглядит следующим образом:

#!/usr/bin/env bash
echo $SLACK_LEGACY_API_TOKEN

Затем я запускаю этот скрипт с source ./slack.sh. Когда я запускаю эту команду, она просто выводит пустую строку - она ​​не получает значение переменной среды.

Я пытался использовать другой синтаксис в файле .sh для ссылки на переменную среды, например "$SLACK_LEGACY_API_TOKEN" и ${SLACK_LEGACY_API_TOKEN}, но тот же результат. Я также запустил скрипт с /slack.sh и . ./slack.sh, но с теми же результатами.

Как мне заставить мой скрипт видеть $SLACK_LEGACY_API_TOKEN?

1 Ответ

0 голосов
/ 01 ноября 2018

Как упомянуто @chepner в комментариях к моему вопросу, проблема была вызвана определением файла .sh в моей среде Windows. В результате файл сохраняется с окончанием строки DOS, что вызывает проблемы со сценарием. Переопределение файла полностью в среде Linux решило проблему.

...