${MyVariable:=SomeDefault}
, Если MyVariable
установлен и не пустой, это сбросит значение переменной (=, ничего не происходит).
Еще, MyVariable
установлен на SomeDefault
.
Вышеупомянутое попытается выполниться ${MyVariable}
, поэтому если Вы просто захотите установить переменную, сделайте:
MyVariable=${MyVariable:=SomeDefault}
Попробуйте:
PATH="${PATH}:${PYTHON}"; export PATH
Или:
export PATH="${PATH}:${PYTHON}"
кавычки сохраняют пробелы и символы новой строки, которых у вас нет в именах каталогов. Я повторяю «не надо» .
Если вы хотите изменить путь для текущей среды и любых последующих процессов, используйте что-то похожее на любую из приведенных выше команд; они эквивалентны.
Если вы хотите изменить путь для следующего запуска Bash, отредактируйте ~ / .bashrc
и добавьте один из вышеперечисленных (например) или отредактируйте существующий Команда установки PATH
, которую вы там найдете.
Если вы хотите повлиять как на текущую среду, так и на любые последующие (т.е. иметь немедленное и «постоянное» влияние), отредактируйте ~ / .bashrc
] и выполните одно из следующих действий: введите одну из первых двух форм, показанных выше или , как источник файла ~ / .bashrc
. Иногда вы можете не захотеть выполнять поиск источника, если, например, это приведет к отмене какой-то временной вещи, которую вы используете в настоящее время, например, если некоторые другие переменные установлены иначе, чем установил бы ~ / .bashrc
( сбросить) их на.
Я не думаю, что вам нужно беспокоиться о хэше, если только вы не делаете серьезную реорганизацию или, возможно, добавляете некоторые локальные замены для системных утилит.
Возможно, вам потребуется повторно инициализировать хэши bash после изменения переменной пути:
hash -r
Если вы хотите, чтобы ваши изменения были постоянными, вам следует изменить соответствующий файл (в данном случае .bashrc) и выполнить ОДНО из следующих действий:
Однако .bashrc используется по умолчанию при использовании оболочки BASH, поэтому, если вы используете другую оболочку (csh, ksh, zsh и т. д.), ваши изменения будут не отражается при изменении .bashrc.
Пара вещей, которые стоит попробовать и по крайней мере исключить:
Вы получаете то же поведение, что и следующее, от оболочки? (Вставлено из моего cygwin, который работает, как ожидалось.)
$ echo $ PATH / USR / местные / бен: / USR / бункер: / бен $ экспорт ПУТЬ = $ ПУТЬ: / cygdrive / c / python / bin $ echo $ PATH / usr / локальный / bin: / usr / bin: / bin: / cygdrive / c / python / bin
Ваш bashrc устанавливает ПУТЬ таким же образом, как указано выше? (т.е. вторая команда).
Ваш bashrc содержит "источник" или "." командовать где угодно? (Возможно, это источник другого файла, который перезаписывает переменную PATH.)