2013-07-02 3 views
0

У меня есть этот .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.

Я что-то не так?

Спасибо!

+0

Не могли бы вы уточнить 'не выполняет команду внутри $ CATALINA'? – devnull

+0

Откуда вы знаете, что он не работает? Получаете ли вы какие-либо сообщения об ошибках при запуске скрипта? –

+0

Это может быть ложно, но это действительно «/ var/local/tomcat», а не «/ usr/local/tomcat»? Это может быть причиной. –

ответ

0

Поскольку я запускаю сценарий оболочки, он использует под-оболочку, поэтому он не может обращаться к среде родительской оболочки.

Проблема решена запустить скрипт таким образом:

. ./script.sh 
Смежные вопросы