2015-10-01 3 views
1

У меня странная ситуация, когда я использую zsh full-time, и любые скрипты bash, которые я запускаю, не правильно выбирают переменные среды. Очевидно, я не ожидаю, что bash заберет env vars, которые определены в среде zsh, поэтому я am с использованием ~/.bashrc и ~/.bash_profile, но это тоже не сработает.сценарий bash не подбирает переменные окружения

Например, вот тестовый скрипт:

#!/bin/bash 

echo $MYTEST 

Я добавил эту линию как ~/.bashrc и ~/.bash_profile, чтобы покрыть мои базы:

export MYTEST="hello" 

Я просто пустую строку при запуске сценарий.

PS: Я знаю, что работает . ./testscript будет работать, но это не вариант, поскольку это системный скрипт, который не вытягивает env vars.

+4

Скрипты системного запуска не запускают ваши файлы инициализации, специфичные для пользователя. –

+0

Тогда почему 'bash -c 'echo $ LESS'' показывает мои' less' опции? Но другие вары не работают? – ffxsam

+0

Ручной запуск 'bash -c' из вашей сессии оболочки не является системным сценарием. Это все еще работает, как вы. Но если у вас есть переменные в '.bashrc'/etc. файлы, которые не работают таким образом (в то время как 'LESS'), то что-то о ваших файлах инициализации неверно (или вы не используете' .bashrc'/'.bash_profile' правильно). –

ответ

3

К сожалению. Может быть, мне стоит попробовать export VAR=val в моем ~/.oh-my-zsh/custom/vars.zsh вместо VAR=val!

+1

Сначала я был как «что, как этот ответ даже полезен ?!» Я не могу ... о, о, я забыл «экспорт», ааааанд теперь исправлен »- Спасибо! – dwanderson

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