【问题标题】:0403-057 Syntax error at line 21 : `fi' is not expected0403-057 第 21 行的语法错误:不需要“fi”
【发布时间】:2017-09-10 08:52:50
【问题描述】:

我找不到此脚本错误的根本原因。 有谁能够帮我?提前致谢。 这是整个脚本的详细信息。

#!/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+"$@"}

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为这并不表示您投入了时间和精力来自己解决问题。到目前为止你尝试了什么?例如 Delta 调试?
  • cut - d'.' -f2 替换为cut -d'.' -f2(删除d 之前的制表符或空格)

标签: shell aix hp-ux


【解决方案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 的赋值中缺少右括号。

【讨论】:

  • 关注你的 cmets:if [ "${JAVA_VERSION:-0} -lt 8 ]; then 结果 >>> 0403-057 第 44 行的语法错误:"' is not matched. if ( [ -z "${JAVA_VERSION}" ] || [ "${JAVA_VERSION }" -lt 8 ]); then` 结果 >>> 0403-057 第 41 行的语法错误:fi' is not expected. if [ -z "${JAVA_VERSION}" -o "${JAVA_VERSION}" -lt 8 ]; then` 结果 >>> -XX:MaxPermSize=256m :未找到。 0403-057 第 41 行的语法错误:不应使用“fi”。
  • 设置 JAVA_VERSION 的行缺少右括号。
  • @user1934428 :请在您的答案中添加缺少的引号,if [ "${JAVA_VERSION:-0} -lt 8 ]; then 行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 2015-07-23
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多