メンチカツ

ロースカツが好きです

fish shell で $JAVA_HOME を設定する

$JAVA_HOMEに限った話ではないのですが、bashでよくやる

export JAVA_HOME=$(/usr/libexec/java_home)

みたいな、evalして変数に受け取るやつをfishでやってみた

~ ─> ><}}*> vi .config/fish/config.fish

set -x JAVA_HOME $(/usr/libexec/java_home)

ら、怒られた。

~ ─> ><}}*> source .config/fish/config.fish

$(...) is not supported. In fish, please use '(/usr/libexec/ja…)'.
.config/fish/config.fish (line 3): set -x JAVA_HOME $(/usr/libexec/java_home)
                                                    ^
from sourcing file .config/fish/config.fish
    called on standard input

source: Error while reading file '.config/fish/config.fish'

fishでは$は変数にしか使わなくて、(command)で書けばよいそうです。

stackoverflow.com

~ ─> ><}}*> vi .config/fish/config.fish

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

~ ─> ><}}*> echo $JAVA_HOME

/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

通った!