kmb*_*kmb 3 java bash fish macos
我在 macOS 上使用 Bash 作为我的默认 shell,但我决定切换到 Fish。
我正在尝试在不同版本的 Java 之间切换。在 bash 中,它是使用~/.bash_profile
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Run Code Online (Sandbox Code Playgroud)
我在 Fish 上设置了等价物 ~/.config/fish/fish_variables
set -x JAVA_HOME `/usr/libexec/java_home -v 1.7`
Run Code Online (Sandbox Code Playgroud)
不幸的是,Java 版本并未更改。如何使用~/.config/fish/fish_variables?设置环境变量(特别是特定版本的 Java)?
根据常见问题解答~/.config/fish/fish_variables,~/.config/fish/config.fish应该使用,而不是。我也创建了~/.config/fish/fish.config而不是~/.config/fish/config.fish.
虽然我对Fish不是很熟悉,但根据我正在阅读的内容,问题似乎出在您的命令中的反引号上:
/usr/libexec/java_home -v 1.7
Run Code Online (Sandbox Code Playgroud)
你会看到在 Bash 中是这样的:
$(/usr/libexec/java_home -v 1.7)
Run Code Online (Sandbox Code Playgroud)
请记住这一点并查看此鱼常见问题解答条目:
如何运行子命令?反引号不起作用!
fish 使用括号作为子命令。例如:
Run Code Online (Sandbox Code Playgroud)for i in (ls) echo $i end
知道配置行最有可能是:
set -x JAVA_HOME (/usr/libexec/java_home -v 1.7)
Run Code Online (Sandbox Code Playgroud)