【问题标题】:script file to check java用于检查 java 的脚本文件
【发布时间】:2013-01-03 15:10:58
【问题描述】:

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

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

【问题讨论】:

  • 在 SO 上发布问题之前先进行研究。网上有很多tutorials

标签: java linux shell


【解决方案1】:
  • -z 检查字符串是否有 zero 长度(即为空)
  • -n 检查字符串是否具有n零长度
  • -x 检查文件 exists 是否具有可执行权限

查看test manual pages 了解其他可用标志

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多