-1

我有一个如下所示的脚本文件:

    # /bin/sh

if [ -z "$JAVACMD" ] ; then
   if [ -n "$JAVA_HOME" ] ; then
      JAVACMD="$JAVA_HOME/bin/java"
   else
      JAVACMD="`which java`"
   fi
 fi

if [ ! -x "$JAVACMD" ] ; then
 echo "Error: JAVA_HOME is not defined correctly; cannot execute: $JAVACMD"
 exit 1
fi

有人可以告诉我“if”条件究竟检查了什么吗?我可以猜测该脚本会检查系统上安装的 java,但很想知道它到底做了什么。

4

2 回答 2

2
  • -z检查字符串的长度是否为零(即为空)
  • -n检查字符串的长度是否为零
  • -x检查文件exists是否具有可执行权限

有关其他可用标志,请参阅test手册页

于 2013-01-03T15:14:15.750 回答
0

第一个 if 语句测试$JAVACMD变量是否已设置。如果没有,则设置它,如果设置了它,则从它构造它,$JAVA_HOME如果没有,则尝试查找任何java可执行文件。

最后的 if 语句检查$JAVACMD指向的路径是否实际存在,如果不存在则报告错误。

于 2013-01-03T15:17:38.823 回答