Shell 在变量bash脚本中执行命令
我有一个.sh脚本: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="/
#!/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内部的变量?