$PATH bash/cygwin/: я должен действительно перезагрузить для изменения $PATH?

${MyVariable:=SomeDefault}

, Если MyVariable установлен и не пустой, это сбросит значение переменной (=, ничего не происходит).
Еще, MyVariable установлен на SomeDefault.

Вышеупомянутое попытается выполниться ${MyVariable}, поэтому если Вы просто захотите установить переменную, сделайте:

MyVariable=${MyVariable:=SomeDefault}
5
задан behindthefall 14 July 2009 в 00:45
поделиться

4 ответа

Попробуйте:

PATH="${PATH}:${PYTHON}"; export PATH

Или:

export PATH="${PATH}:${PYTHON}"

кавычки сохраняют пробелы и символы новой строки, которых у вас нет в именах каталогов. Я повторяю «не надо» .

Если вы хотите изменить путь для текущей среды и любых последующих процессов, используйте что-то похожее на любую из приведенных выше команд; они эквивалентны.

Если вы хотите изменить путь для следующего запуска Bash, отредактируйте ~ / .bashrc и добавьте один из вышеперечисленных (например) или отредактируйте существующий Команда установки PATH , которую вы там найдете.

Если вы хотите повлиять как на текущую среду, так и на любые последующие (т.е. иметь немедленное и «постоянное» влияние), отредактируйте ~ / .bashrc ] и выполните одно из следующих действий: введите одну из первых двух форм, показанных выше или , как источник файла ~ / .bashrc . Иногда вы можете не захотеть выполнять поиск источника, если, например, это приведет к отмене какой-то временной вещи, которую вы используете в настоящее время, например, если некоторые другие переменные установлены иначе, чем установил бы ~ / .bashrc ( сбросить) их на.

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

3
ответ дан 14 December 2019 в 13:44
поделиться

Возможно, вам потребуется повторно инициализировать хэши bash после изменения переменной пути:

hash -r
0
ответ дан 14 December 2019 в 13:44
поделиться

Если вы хотите, чтобы ваши изменения были постоянными, вам следует изменить соответствующий файл (в данном случае .bashrc) и выполнить ОДНО из следующих действий:

  • Перезапустите исходный код .bashrc окна cygwin
  • (это должно работать, даже если у вас не работает)
  • . .bashrc (то есть точка <пробел> <имя файла>)

Однако .bashrc используется по умолчанию при использовании оболочки BASH, поэтому, если вы используете другую оболочку (csh, ksh, zsh и т. д.), ваши изменения будут не отражается при изменении .bashrc.

2
ответ дан 14 December 2019 в 13:44
поделиться

Пара вещей, которые стоит попробовать и по крайней мере исключить:

  1. Вы получаете то же поведение, что и следующее, от оболочки? (Вставлено из моего cygwin, который работает, как ожидалось.)

     $ echo $ PATH
    / USR / местные / бен: / USR / бункер: / бен
    
    $ экспорт ПУТЬ = $ ПУТЬ: / cygdrive / c / python / bin
    
    $ echo $ PATH
    / usr / локальный / bin: / usr / bin: / bin: / cygdrive / c / python / bin
    
  2. Ваш bashrc устанавливает ПУТЬ таким же образом, как указано выше? (т.е. вторая команда).

  3. Ваш bashrc содержит "источник" или "." командовать где угодно? (Возможно, это источник другого файла, который перезаписывает переменную PATH.)

1
ответ дан 14 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: