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>, then一样执行它$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 回答