Я должен установить переменную окружения, разделенную точкой, в моем скрипте запуска tomcat. Например,
host.name=localhost
Я знаю, что shell не принимает переменные, разделенные точками. Есть ли работа вокруг?
Я где-то нашел, что мы можем использовать переменную env, но, похоже, это не работает. Я использовал
env host.name=localhost
Кто-нибудь может мне помочь, пожалуйста?
Большое спасибо за Ваш AB ответа. Однако я нашел намного лучшее решение. Я просто добавил в CATALINA_OPTS
переменная кота в файле /usr/share/tomcat7/bin/setenv.sh
:
export CATALINA_OPTS="-Dhost.name=localhost"
Это работало точно, как я хотел.
Я не понимаю, почему это требуется для Tomcat. Все configuratios находятся в, например: /etc/tomcat7/server.xml
. Я работал в течение нескольких лет с Tomcat, но этот вид конфигурации мне никогда не было нужно. Так или иначе здесь Ваш ответ.
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