在父shell脚本中重新分配导出的变量以运行2个不同的子shell脚本

时间:2016-08-05 08:05:40

标签: shell tomcat jvm export

我试图通过重新分配start_port从第一个父shell脚本运行2个Tomcat实例,但第二个JVM没有选择重新分配的start_port

#!/bin/bash

export CATALINA_BASE_PORT=10000
export JAVA_OPTS='-Dport.http.nonssl=$CATALINA_BASE_PORT'
./apache-tomcat-8.0.5/bin/startup.sh

sleep 5

export CATALINA_BASE_PORT=20000
export JAVA_OPTS='-Dport.http.nonssl=$CATALINA_BASE_PORT'
./apache-tomcat-8.0.5/bin/startup.sh

第一个Tomcat实例启动正常,但是第二个实例无法启动,因为它选择了与1st相同的端口,10000并且抛出了像端口10000这样的异常。请指教。感谢。

1 个答案:

答案 0 :(得分:0)

尝试双引号。变量替换应该正常工作:

$ export CATALINA_BASE_PORT=10000
$ export JAVA_OPTS='-Dport.http.nonssl=$CATALINA_BASE_PORT'
$ echo $JAVA_OPTS 
-Dport.http.nonssl=$CATALINA_BASE_PORT


$ export CATALINA_BASE_PORT=10000
$ export JAVA_OPTS="-Dport.http.nonssl=$CATALINA_BASE_PORT"
$ echo $JAVA_OPTS 
-Dport.http.nonssl=10000