web-dev-qa-db-fra.com

Comment définir des variables d'environnement séparées par des points

Je dois définir une variable d'environnement séparée par un point dans mon script de démarrage Tomcat. Par exemple

Host.name=localhost

Je sais que Shell n'accepte pas les variables séparées par des points. Y at-il un travail autour ?

J'ai trouvé quelque part que nous pouvons utiliser la variable env mais cela ne semble pas fonctionner. j'ai utilisé

env Host.name=localhost

Quelqu'un peut-il m'aider s'il-vous-plaît ?

2
Chandan Agarwal

Merci beaucoup pour votre réponse AB. Cependant, j'ai trouvé une bien meilleure solution. J'ai simplement ajouté la variable CATALINA_OPTS de Tomcat dans le fichier /usr/share/Tomcat7/bin/setenv.sh:

export CATALINA_OPTS="-Dhost.name=localhost"

Cela a fonctionné exactement comme je voulais.

3
Chandan Agarwal

Je ne comprends pas pourquoi cela est nécessaire pour Tomcat. Toutes les configurations sont par exemple: /etc/Tomcat7/server.xml. Je travaille depuis plusieurs années avec Tomcat, mais je n’ai jamais eu besoin de ce type de configuration. Quoi qu'il en soit ici est votre réponse.

TL; DR

env "Host.name=localhost"

Test avec:

env "Host.name=localhost" Perl -le 'print $ENV{"Host.name"}'

ou avec Java:

Créer un runnable 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));
        }
    }
}

et tester avec:

env "Host.name=localhost" Java -jar PrintEnv.jar | grep Host.name
2
A.B.