Shell 在变量bash脚本中执行命令

Shell 在变量bash脚本中执行命令,shell,Shell,我有一个.sh脚本: #!/bin/bash CLASSPATH=$1 PACKAGE=$2 INPUT_FILE=$3 javac -classpath $CLASSPATH classes/$PACKAGE/$INPUT_FILE.java cp classes/$PACKAGE/$INPUT_FILE.class ../WEB-INF/classes/$PACKAGE/ eval "$CATALINA" 并且,$CATALINA设置为。bashrc: CATALINA_PATH="/

我有一个.sh脚本:

#!/bin/bash
CLASSPATH=$1
PACKAGE=$2
INPUT_FILE=$3

javac -classpath $CLASSPATH classes/$PACKAGE/$INPUT_FILE.java
cp classes/$PACKAGE/$INPUT_FILE.class ../WEB-INF/classes/$PACKAGE/

eval "$CATALINA"
并且,
$CATALINA
设置为。bashrc:

CATALINA_PATH="/var/local/tomcat/bin/catalina.sh"
CATALINA="sh $CATALINA_PATH stop && sh $CATALINA_PATH run"
但是当我执行.sh脚本时,它不会执行
$CATALINA
中的命令

我做错什么了吗


谢谢

因为我正在运行shell脚本,所以它使用一个子shell,因此无法访问父shell的环境

以这种方式运行shell脚本已解决问题:

. ./script.sh

你能详细说明一下,
没有在$CATALINA中执行命令吗?你怎么知道它没有运行?运行脚本时是否收到任何错误消息?这可能是虚假的,但这真的是“/var/local/tomcat”而不是“/usr/local/tomcat”吗?这可能就是原因。它在1秒内运行(通常需要5秒或更长时间),但服务器无法启动。我故意输入/var。如果我在脚本外部执行$CATALINA,它会工作得很好。可能是因为我使用了一个在.bashrc内部的变量?