我有一个脚本j16.sh,内容为:
export JAVA_HOME=`/usr/libexec/java_home -v 16.0.1`
echo Java 16
当我在终端(zsh)上使用
运行脚本时./j16.sh
打印"Java 16",但当我调用"Java——version",版本没有更改为16。
然而,当我执行"export"行(从脚本中复制)(直接在终端上),Java版本被切换,如预期的那样。
我做错了什么?显然,在脚本中执行时,这一行没有效果——但是回显行有效果?
你应该使用Source
source j16.sh
这将运行脚本的命令,而不是启动一个新的shell,这将导致设置环境。