前言
在Tomcat/bin/catalina.sh
中有一段代码如下
1 2 3 4 5 6
| if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then . "$CATALINA_BASE/bin/setenv.sh" elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then . "$CATALINA_HOME/bin/setenv.sh" fi
|
不同的执行shell方式
先添加一个setenv.sh
文件
1 2
| export JAVA_HOME=/opt/jdk/jdk1.8.0_151 export JAVA_OPTS=-Xmx512m
|
执行以下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| [root@127.0.0.1 ~]
[root@127.0.0.1 ~]
[root@127.0.0.1 ~]
[root@127.0.0.1 ~]
[root@127.0.0.1 ~] JAVA_HOME=/opt/jdk/jdk1.8.0_151 JAVA_OPTS=-Xmx512m
[root@127.0.0.1 ~] [ahao@127.0.0.1 ~]$ su -
[root@127.0.0.1 ~]
[root@127.0.0.1 ~]
[root@127.0.0.1 ~] JAVA_HOME=/opt/jdk/jdk1.8.0_151 JAVA_OPTS='-Xms2000m -Xmx2000m'
|
总结
- 有三种执行shell脚本的语法, 实际上只有两种执行shell的方式, 一种在当前shell执行, 一种在子shell中执行。
. /opt/tomcat/tomcat-test/bin/setenv.sh
和source /opt/tomcat/tomcat-test/bin/setenv.sh
等价。