web-dev-qa-db-ja.com

環境変数をドットで区切って設定する方法

Tomcat起動スクリプトで、ドットで区切られた環境変数を設定する必要があります。例えば

Host.name=localhost

Shellはドット区切りの変数を受け入れないことを知っています。回避策はありますか?

どこかでenv変数を使用できることがわかりましたが、うまくいかないようです。私は使った

env Host.name=localhost

誰でも私を助けてくれますか?

2
Chandan Agarwal

返信ABに感謝します。しかし、私ははるかに優れたソリューションを見つけました。ファイルCATALINA_OPTSのTomcatの/usr/share/Tomcat7/bin/setenv.sh変数に追加しただけです。

export CATALINA_OPTS="-Dhost.name=localhost"

これは私が望んでいた通りに機能しました。

3
Chandan Agarwal

Tomcatに必要な理由がわかりません。すべての構成は、たとえば次のとおりです:/etc/Tomcat7/server.xml。私はTomcatで数年働いてきましたが、この種の構成は必要ありませんでした。とにかく here が答えです。

TL; DR

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
2
A.B.