2014-01-13 4 views
0

Я пытаюсь, чтобы моя система автоматически загружала файл, содержащий некоторые среды vars для использования в моем проекте rails вместо того, чтобы просто экспортировать их в оболочку, но я просто не могу заставить его работать.файл, содержащий env vars, не загружается

я использую Mac OSX 10.6

эти шаги я затем.

nano .bash_profile 

export PATH=Users/Moshe/env_vars:$PATH 

touch env_vars 

nano env_vars 

DEV_DB=TestDB 
export DEV_DB 

DEV_DB_HOST=12.34.56.78 
export DEV_DB_HOST 

exit 

Я снова открыть оболочку и

printenv 

, но я не вижу ВАР я набор

однако я вижу его Users/Moshe/env_vars в пути, когда я echo $PATH

я попытались взглянуть на этот ответ, но я не могу видеть, что я делаю неправильно

Setting environment variables in OS X?

+0

удалить 'exit' слово, то вопрос в командной строке ваш скрипт выглядит следующим образом: '. your_script.sh' –

+0

'exit' не написано, я просто набрал его в терминал, чтобы убедиться, что его перезагрузили – Moshe

+0

. Да, набрав эту команду, я теперь вижу ее , но я хотел, чтобы это произошло автоматически при загрузке без необходимости ввода любые команды – Moshe

ответ

1

Не используйте ключевое слово exit. Либо вставить код в .bash_profile, или сохранить его в определенный файл, например your_script.sh, и звонить из .bash_profile следующим образом:

. your_script.sh 
1

Переменные окружения не считаются из файлов, найденных на вашем $PATH; ваш $PATH выполняет поиск исполняемых файлов при вводе команды в оболочке.

Чтобы загрузить переменные, вам нужно «источник» файл вместо: (. Обратите внимание, что вам также необходимо начальное /, чтобы имя файла абсолютное)

# .bash_profile 
source /Users/Moche/env_vars 

Кроме того, поскольку вы используете Ruby, вам может быть интересно использовать dotenv gem. dotenv позволяет указать переменные среды в файле .env в корневом каталоге проекта Rails и автоматически загружать их при запуске. Это сохраняет переменные, которые вам нужны для каждого проекта, близкого к коду, и делает ваш проект немного более портативным (например, вы можете использовать его для развертывания на службе, например, Heroku). Просто убедитесь, что вы не фиксируете .env в своем контроле версий, если в нем есть какая-либо конфиденциальная информация, например пароли!

+0

Я собираюсь заглянуть в этот драгоценный камень – Moshe

+0

, но я просто попытался перейти от экспорта к исходному с абсолютным путем и до сих пор не отображается – Moshe

+0

Вы переиздавали свой '.bash_profile'? ('source ~/.bash_profile' с терминала или открыть новое окно терминала после сохранения изменений.) –

Смежные вопросы