Como definir variáveis de ambiente separadas por pontos

2

Eu tenho que definir uma variável de ambiente separada por ponto no meu script de inicialização tomcat. Por exemplo

host.name=localhost

Eu sei que o shell não aceita variáveis separadas por pontos. Existe um trabalho por aí?

Eu encontrei em algum lugar que podemos usar a variável env, mas isso não parece funcionar. Eu usei

env host.name=localhost

Alguém pode me ajudar por favor?

    
por Chandan Agarwal 14.05.2015 / 17:00

2 respostas

3

Muito obrigado pela sua resposta AB. No entanto, encontrei uma solução muito melhor. Eu simplesmente adicionei na variável CATALINA_OPTS do tomcat no arquivo /usr/share/tomcat7/bin/setenv.sh :

export CATALINA_OPTS="-Dhost.name=localhost"

Isso funcionou exatamente como eu queria.

    
por Chandan Agarwal 15.05.2015 / 23:29
2

Eu não entendo porque isso é necessário para o Tomcat. Todas as configurações estão em, por exemplo: /etc/tomcat7/server.xml . Eu trabalhei por vários anos com o Tomcat, mas esse tipo de configuração eu nunca precisei. De qualquer forma aqui é a sua resposta.

TL; DR

env "host.name=localhost"

Teste com:

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

ou com Java:

Crie um jar runnable

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));
        }
    }
}

e teste com:

env "host.name=localhost" java -jar PrintEnv.jar | grep host.name
    
por A.B. 14.05.2015 / 17:29