我有一个脚本文件,如下所示:
# /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,但很想知道它究竟做了什么。
答案 0 :(得分:2)
-z
检查字符串是否有 z ero长度(即为空)-n
检查字符串是否 n 为零长度-x
检查文件e x ists是否具有可执行权限有关其他可用标志,请参阅test
manual pages
答案 1 :(得分:0)
第一个if语句测试是否已设置$JAVACMD
变量。如果没有,则设置它,如果已设置,则从$JAVA_HOME
构建它,否则尝试查找任何java
可执行文件。
最后的if语句检查$JAVACMD
指向的路径是否实际存在,如果没有则报告错误。