Установить $ path fail (подсистема win10 linux, ubuntu, fi sh shell, brew) - PullRequest
0 голосов
/ 21 марта 2020

Среда

  • ОС: Windows Подсистема для Linux, Ubuntu 18.04
  • shell: fi sh
  • Управление набором инструментов: brew ( homebrew / linuxbrew)
    • fi sh установил
      • fi sh установил в качестве оболочки по умолчанию
    • brew установил

target

Я хочу использовать PHP с командой "php", которая заварила, но не удалось.

Что я сделал

  • Я пытаюсь настроить среду самостоятельно

    • После успешного завершения в текущей оболочке, но не удается при перезапуске оболочки
    # in bash I tried these
    PATH=${PATH}:/home/linuxbrew/.linuxbrew/bin/
    export PATH=${PATH}:/home/linuxbrew/.linuxbrew/bin/
    
    # in fish bash I tried these
    set PATH $PATH /home/linuxbrew/.linuxbrew/bin/     <-update: updated
    export PATH $PATH:/home/linuxbrew/.linuxbrew/bin/  <-update: wrong
    
    • После успешного выполнения в bash, но с ошибкой в ​​fish
      • добавьте указанную выше команду в файл .bashr c в каталоге пользователя (.bashr c, кажется, выполняется только тогда, когда bash)
    • следует успех, но неудача
      • sudo -H vi /etc/environment
      • добавить /home/linuxbrew/.linuxbrew/bin/ в него

1 Ответ

3 голосов
/ 21 марта 2020

Если вы хотите, чтобы команды запускались при запуске fi sh, вам нужно поместить их в файл с именем "config.fi sh" в ~ / .config / fish /. Bashr c, как следует из названия, определяет c до bash.

Также «экспорт» используется для обозначения переменной для «экспорта», что означает ее передачу на внешние команды запускается оболочка. $ PATH обычно наследуется от того, что запускает оболочку , что означает, что она все равно экспортируется, поэтому ваша строка export бесполезна.

Также ваша команда fi sh нуждается в небольшой корректировке :

set PATH $PATH /home/linuxbrew/.linuxbrew/bin/

$ PATH в fi sh - это список, и поэтому его необходимо задавать как несколько аргументов, а не как одну строку. В fi sh 3.0 (который был выпущен после Ubuntu 18.04) это было скорректировано так, чтобы автоматически разделять на «:», но даже в этом случае вам придется его заключать в кавычки, или это приведет к неожиданным результатам.

...