首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >0403-057第21行出现语法错误:不需要‘`fi’

0403-057第21行出现语法错误:不需要‘`fi’
EN

Stack Overflow用户
提问于 2017-04-14 13:32:23
回答 1查看 1.5K关注 0票数 0

我找不到这个脚本错误的根本原因。有人能帮我吗?提前谢谢。下面是整个脚本的详细信息。

代码语言:javascript
代码运行次数:0
运行
复制
#!/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+"$@"}
EN

回答 1

Stack Overflow用户

发布于 2017-04-14 13:43:34

代码语言:javascript
代码运行次数:0
运行
复制
 if [ -z "${JAVA_VERSION}" ] || [ "${JAVA_VERSION}" -lt 8 ]; then

是不正确的。替换-例如-替换为

代码语言:javascript
代码运行次数:0
运行
复制
if [ "${JAVA_VERSION:-0}" -lt 8 ]; then

其他可能性:

代码语言:javascript
代码运行次数:0
运行
复制
 if ( [ -z "${JAVA_VERSION}" ] || [ "${JAVA_VERSION}" -lt 8 ] ); then

或者像这样:

代码语言:javascript
代码运行次数:0
运行
复制
 if [ -z "${JAVA_VERSION}" -o "${JAVA_VERSION}" -lt 8 ]; then

或者这样:

代码语言:javascript
代码运行次数:0
运行
复制
 [ -z "${JAVA_VERSION}" ] || [ "${JAVA_VERSION}" -lt 8 ] && YAB_JAVA_OPTS="-XX:MaxPermSize=256m ${YAB_JAVA_OPTS}"

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43405718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档