Roo*_*kie 5 centos environment-variables tomcat
我认为之前没有人问过我的问题(无论如何都没有问过,如果有,抱歉)。我在 CentOS 7 上使用 Tomcat 7。
在我的 tomcat/bin/setenv.sh 文件中,我设置了:
export TEST="test"
Run Code Online (Sandbox Code Playgroud)
然后我通过运行 tomcat/bin/startup.sh 通过终端启动 tomcat
然后我运行(不是在脚本中,而是在执行 Tomcat 启动脚本后在终端中运行):
echo $TEST
Run Code Online (Sandbox Code Playgroud)
我的问题:我应该能够“回显”变量 TEST 吗?我是否应该能够看到 TEST 变量已设置为我想要的(测试)?
不startup.sh
,在与您启动它的进程不同的进程中运行。启动脚本时,它会在当前 shell的新子 shell中运行。虽然子shell在初始化期间确实继承了其父级的环境,但在那之后,任何方向的变化都没有传播。因此,什么startup.sh
时候. setenv.sh
1环境更改在您的命令行中不可见。
如果您改为运行,. startup.sh
那么事情会有所不同,因为一切都将在同一个 shell 中发生。但这对您的 Tomcat 启动来说并不健康!
1实际上startup.sh
调用catalina.sh
然后它是源setenv.sh
(至少在 Tomcat 7.x 中),但为了简单起见,我忽略了这个事实,因为它不会改变结果。
不。
该startup.sh
脚本可以被采购的setenv.sh
文件,以获取变量的值,但如果这样做,该变量将只在环境中设置startup.sh
的脚本,而不是在你交互shell。
如果您想查看运行时发生的情况,请startup.sh
首先确定它使用的 shell 解释器(请参阅#!
文件顶部的-line)。
如果是bash
,运行它
$ bash -x tomcat/bin/startup.sh
Run Code Online (Sandbox Code Playgroud)
(即添加-x
到命令行)
这将打开脚本跟踪。
归档时间: |
|
查看次数: |
18886 次 |
最近记录: |