Эквивалент setenv на Mac?

Я хочу установить переменную среды, используя setenv:

setenv NODE_ENV localhost  

Но setenv выдает ошибку, что команда не найдена. Кто-нибудь знает, как выполнить эквивалент setenv для MAC OSX? Спасибо!


person user1871869    schedule 24.09.2013    source источник
comment
Какое отношение имеет node.js к вашему вопросу?   -  person Keith Thompson    schedule 26.08.2014
comment
@KeithThompson - вопрос явно не об узле (конечно, он делает это, чтобы заставить узел работать, но ответ на вопрос не зависит от узла); ОП хочет установить переменную среды, и узел — это всего лишь пример. Я собираюсь отредактировать вопрос.   -  person Howiecamp    schedule 12.01.2015
comment
@Howiecamp: OP использовал тег node.js. Вопрос, конечно, не похож на то, что он действительно касается node.js, но, насколько я знал, могла быть какая-то связь, которую я упустил. Ожидаемый ответ заключается в том, что это не имеет отношения к делу, но я надеялся, что ОП ответит.   -  person Keith Thompson    schedule 13.01.2015


Ответы (3)


ты хочешь export

NODE_ENV=localhost
export NODE_ENV

или на 1 строке export NODE_ENV=localhost

и это не имеет ничего общего с OSX как таковой, больше связано с bash vs (t)csh в качестве вашей оболочки

person Doon    schedule 24.09.2013

Лучше всего для Mac:

launchctl setenv NODE_ENV localhost

если вы хотите сделать переменную постоянной и избежать перезагрузки.

Видеть:

http://www.dowdandassociates.com/blog/content/howto-set-an-environment-variable-in-mac-os-x-slash-etc-slash-launchd-dot-conf/

person German    schedule 26.08.2014
comment
Насколько актуален launchctl? - person Keith Thompson; 26.08.2014
comment
Так что вам не придется перезагружаться. См.: stackoverflow.com/questions /2519292/ Вы владелец Mac? это обычная практика - person German; 26.08.2014
comment
Дополнительные ссылки: codepulsive.blogspot.com .es/2013/11/ apple.stackexchange.com/questions/51677/ - person German; 26.08.2014
comment
Хм. Я решил, что вопрос касается [t]csh против bash (авторы других ответов сделали такое же предположение), но, по-видимому, он также имеет какое-то отношение к node.js, с которым я не знаком. Тем не менее, я думаю, что команда setenv, о которой спрашивал ОП, является встроенной командой в [t]csh. export NODE_ENV=localhost в bash точно эквивалентен setenv NODE_ENV localhost в [t]csh. ОП, похоже, не спрашивал, как сделать настройку постоянной; это будет отдельный вопрос. Есть ли очевидная связь между node.js и launchctl? - person Keith Thompson; 26.08.2014
comment
Хорошо, честно, но поскольку автор не упоминает о различиях оболочки, я этого не понял. Нет, между node.js и launchctl нет никакой связи. - person German; 26.08.2014
comment
@KeithThompson - я не понимаю, почему вы продолжаете поднимать этот вопрос об актуальности и отношении к узлу. Я подозреваю, что вы знаете, что между node.js и launchctl нет очевидной связи. Node js оказался только примером. Переменная могла бы называться NOT_NODE; это просто имя. - person Howiecamp; 13.01.2015

Вы человек Cshell?

Более ранние версии OS X поставлялись с tcsh в качестве оболочки по умолчанию, поскольку OS X основана на BSD. Однако Mac OS X поставляется с BASH в качестве пользовательской оболочки по умолчанию.

Mac по-прежнему поставляется с Turbo Csh, и вы можете сделать его своей оболочкой по умолчанию, если хотите. В терминале введите:

$ chsh -s /bin/tcsh

Если вы решите вернуться к BASH:

$ chsh -s /bin/bash

Вы можете увидеть список всех возможных оболочек в файле /etc/shell.

person David W.    schedule 24.09.2013