Я использовал Bash в качестве оболочки по умолчанию для MacOS, но решил перейти на Fish.

Я пытаюсь переключаться между различными версиями Java. В bash это было сделано с помощью ~/.bash_profile

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

Я установил эквивалент для Fish ~/.config/fish/fish_variables

set -x JAVA_HOME `/usr/libexec/java_home -v 1.7`

К сожалению, версия Java не меняется. Как я могу установить переменные среды (в частности, конкретную версию Java), используя ~/.config/fish/fish_variables?

ОБНОВИТЬ:

Согласно FAQ, вместо ~/.config/fish/fish_variables ~/.config/fish/config.fish следует использовать. Также я создал ~/.config/fish/fish.config вместо ~/.config/fish/config.fish .

1 ответ1

1

Хотя я не очень хорошо знаком с Fish, исходя из того, что я читаю, кажется, что проблема в обратных галочках в вашей команде:

/usr/libexec/java_home -v 1.7

Вы видите, что это просто так в Bash:

$(/usr/libexec/java_home -v 1.7)

Имейте это в виду и посмотрите на эту запись FAQ по Рыбе:

Как запустить подкоманду? Обратный удар не работает!

рыба использует скобки для подкоманд. Например:

for i in (ls)
    echo $i
end

Зная, что строка конфигурации, скорее всего, должна быть:

set -x JAVA_HOME (/usr/libexec/java_home -v 1.7)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .