Goto, правда?
Измените ваши операторы if, чтобы добавить точку с запятой до fi
if [$JAVA_HOME = ""]; then goto no_java_home ; fi
, например.
Ваша оболочка не может различитькоманда no_java_home и команда fi, потому что они отображаются в одной строке без разделителя точки с запятой или чего-либо еще, что могло бы завершить оператор.У вас та же проблема на ваших линиях с четким эхом;что касается sh
, здесь эхо используется как аргумент для очистки и не является отдельной командой.
Но, пожалуйста, перепишите это без использования goto!
Вот так:
if [$JAVA_HOME = ""] ; then
clear
echo "You should set the JAVA_HOME environment variable"
elif [$SRV_HOME = ""] ; then
clear
echo "You should set the TMX_HOME environment variable. For example: TMX_HOME=d:\MYSERVER"
else
echo Uses JAVA_HOME=$JAVA_HOME
echo Uses SRV_HOME=$SRV_HOME
export ACP=""
export ACP=$ACP;$JAVA_HOME/lib/tools.jar
export ACP=$ACP;$SRV_HOME/ant/lib/ant.jar
export ACP=$ACP;$SRV_HOME/ant/lib/ant-launcher.jar
export ACP=$ACP;$SRV_HOME/ant/lib/ant-nodeps.jar
export ACP=$ACP;$SRV_HOME/ant/lib/optional.jar
export ACP=$ACP;$SRV_HOME/ant/lib/ant-contrib-1.0b3.jar
$JAVA_HOME/bin/java -Xmx512m -classpath $ACP org.apache.tools.ant.Main -buildfile
$SRV_HOME/ant/ant_script.xml %*
fi
echo "OK"