-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ファイルが存在するかどうかを調べます

その他の使用可能なフラグについては、testマニュアル ページを参照してください。

于 2013-01-03T15:14:15.750 に答える
0

最初の if ステートメントは、$JAVACMD変数が設定されているかどうかをテストします。そうでない場合はそれを設定し、それが設定されている場合はそれを構築するか、そうでない場合は実行可能ファイル$JAVA_HOMEを見つけようとしますjava

$JAVACMD最後の if ステートメントは、指し示すパスが実際に存在するかどうかをチェックし、存在しない場合はエラーを報告します。

于 2013-01-03T15:17:38.823 に答える