0403-057 第 21 行出现语法错误:"fi"不是预期的



我找不到此脚本错误的根本原因。有人可以帮助我吗?提前谢谢。这是整个脚本细节。

#!/bin/sh
CWD=`pwd`
LAUNCH_DIRECTORY=`eval dirname $0`
cd $LAUNCH_DIRECTORY
LAUNCH_DIRECTORY=`pwd`
cd $CWD
if [ -d "${LAUNCH_DIRECTORY}/java/bin" ]; then
  JAVA_HOME=${LAUNCH_DIRECTORY}/java
fi
if [ "${JAVA_HOME}" != "" ]; then
  PATH=${JAVA_HOME}/bin:${PATH}
fi
JAVA_VERSION=$(java -version 2>&1 | grep -i version | 
               cut -d'"' -f2 | cut -         d'.' -f2)
if [ -z "${JAVA_VERSION}" ] || [ "${JAVA_VERSION}" -lt 8 ]; then
  YAB_JAVA_OPTS="-XX:MaxPermSize=256m ${YAB_JAVA_OPTS}"
fi
export TERM=xterm
java ${YAB_JAVA_OPTS} 
     -Dlaunch.dir="${LAUNCH_DIRECTORY}" 
     -jar "${LAUNCH_DIRECTORY}/lib/yab-loader.jar" ${YAB_OPTS} ${1+"$@"}
 if [ -z "${JAVA_VERSION}" ] || [ "${JAVA_VERSION}" -lt 8 ]; then

不正确。替换 - 例如 - 由

if [ "${JAVA_VERSION:-0}" -lt 8 ]; then

其他可能性:

 if ( [ -z "${JAVA_VERSION}" ] || [ "${JAVA_VERSION}" -lt 8 ] ); then

或者像这样:

 if [ -z "${JAVA_VERSION}" -o "${JAVA_VERSION}" -lt 8 ]; then

或者这个:

 [ -z "${JAVA_VERSION}" ] || [ "${JAVA_VERSION}" -lt 8 ] && YAB_JAVA_OPTS="-XX:MaxPermSize=256m ${YAB_JAVA_OPTS}"

原因:if的"参数"必须是命令。你写的,是两个由||连接的命令.

除此之外,变量 JAVA_VERSION 的赋值中缺少右括号。

相关内容

最新更新