如何设置以点分隔的环境变量

如何设置以点分隔的环境变量

我必须在 tomcat 启动脚本中设置一个以点分隔的环境变量。例如

host.name=localhost

我知道 shell 不接受点分隔的变量。有解决方法吗?

我发现我们可以使用环境变量,但似乎不起作用。我使用了

env host.name=localhost

有人能帮帮我吗?

答案1

非常感谢您的回复 AB。但是我找到了一个更好的解决方案。我只是CATALINA_OPTS在文件中添加了 tomcat 的变量/usr/share/tomcat7/bin/setenv.sh

export CATALINA_OPTS="-Dhost.name=localhost"

这正是我想要的效果。

答案2

我不明白为什么 Tomcat 需要这样做。所有配置都在例如:/etc/tomcat7/server.xml。我已经使用 Tomcat 好几年了,但我从来不需要这种配置。无论如何这里就是你的答案。

总结

env "host.name=localhost"

测试:

env "host.name=localhost" perl -le 'print $ENV{"host.name"}'

或者使用 Java:

创建一个可运行的jar

package stackoverflow;

import java.util.Map;

public class PrintEnv {
    public static void main(String[] args) {
        Map<String, String> env = System.getenv();
        for (String envName : env.keySet()) {
            System.out.println(envName + ": " + env.get(envName));
        }
    }
}

并测试:

env "host.name=localhost" java -jar PrintEnv.jar | grep host.name

相关内容