我找不到此脚本错误的根本原因。 有谁能够帮我?提前致谢。 这是整个脚本的详细信息。
#!/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+"$@"}
答案 0 :(得分:0)
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
的赋值中缺少结束的parenthisis。