用于检查java的脚本文件

时间:2013-01-03 15:10:58

标签: java linux shell

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

    # /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,但很想知道它究竟做了什么。

2 个答案:

答案 0 :(得分:2)

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

有关其他可用标志,请参阅test manual pages

答案 1 :(得分:0)

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

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