11

このスクリプトでは、次のif式を見つけました。

if [ -z $1 ]; then
    echo "Usage: createpkg.sh <rev package>"
    exit
else
    CURRENT_VERSION=$1
fi

-z私の問題は、この値を正確に意味するものが見つからないことです。

エコーの内容から、(おそらく)$1変数がソフトウェアのバージョンを表していると推測できます。そしてそれは(おそらく)-z無効な値です。したがって、パッケージ化するソフトウェアのバージョンを渡さずにスクリプトを実行すると、スクリプトを実行するための正しい手順が表示されます。

-zしかし、値の本当の意味についてはわかりません。

4

2 に答える 2

20

からman test:

   -z STRING
          the length of STRING is zero

したがって、条件:

if [ -z $1 ]; then

「変数 $1 が空の場合」を意味します。$1はおそらくスクリプトの最初のパラメーターです: のように実行する場合は./script <parameter1> <parameter2>、など$1=parameter1です$2=parameter2

于 2013-10-21T13:05:35.103 に答える
5

help test伝えます:

String operators:

  -z STRING      True if string is empty.

Usage: createpkg.sh <rev package>あなたの例では、引数が指定されていない場合、スクリプトは出力して終了します。

于 2013-10-21T13:05:59.950 に答える