`VAR=...` 和 `export VAR=...` 之间有什么区别?

`VAR=...` 和 `export VAR=...` 之间有什么区别?

做起来有什么区别

$ MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

$ export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

在 SSH 连接中执行任何操作是否有任何副作用?

答案1

第一个将值设置为变量。例如,你可以这样做

echo $MAVEN_OPTS

并让它返回值,但如果你在 shell 之外发出该命令,你将返回一个空字符串。

进来了export

Export 是一条给 shell 的指令。它告诉 shell 将此环境变量提供给从同一 shell 执行的其他程序。如果没有导出,它们只能在 shell 本身内使用。

如果您希望变量永久可用,ssh 将读取~/.ssh/environmentssh2读取/etc/environment~/.ssh2/environment,并将格式为 VARNAME=value 的行添加到环境中。从ssh手册页

答案2

MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

设置名为 的 shell 变量MAVEN_OPTS。后面可能跟着一个export MAVEN_OPTS命令,使该变量作为环境变量提供给子程序,或者是一个使用该变量的 shell 命令,例如java $MAVEN_OPTS ...

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=384m"

设置名为 的环境变量MAVEN_OPTS。此环境变量也可供子程序使用。

maven除了调整了一些 Java 内存限制(构建系统 iirc)之外,没有副作用。

相关内容