我找不到这个脚本错误的根本原因。有人能帮我吗?提前谢谢。下面是整个脚本的详细信息。
#!/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+"$@"}
发布于 2017-04-14 05:43:34
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
的赋值中缺少右括号。
https://stackoverflow.com/questions/43405718
复制相似问题