0

我正在处理现有的构建脚本,其中脚本文件包含这些(某些部分)作为构建过程的一部分,我需要运行这个脚本文件。

#!/bin/sh

if  [ -z $1 ];  then
    help
elif [ $1 == 'test' ]; then 
test

任何人都可以让我知道这是什么意思以及价值将从哪里得到?

4

4 回答 4

2

如果第一个参数 ( $1) 为“空”,则调用help,否则"CheckIn"调用CheckIn

这是非常基本的东西,你应该阅读手册页

于 2012-10-04T09:26:50.350 回答
1

您应该使用参数调用脚本:

/path/to/script.sh argument

如果有更多参数,它们被称为 $1, $2, ...

于 2012-10-04T09:26:49.630 回答
1

实际上这个脚本说:

  1. 如果不带参数调用脚本,则调用函数help
  2. 否则,如果传递给脚本的第一个参数是CheckIn调用函数CheckIn

一个例子可能是:

#!/bin/sh

CheckIn() {
 echo "CheckIn called!!";
}

help () {
 echo "Help called!!";
}


if  [ -z $1 ];  then
   help
elif [ $1 == 'CheckIn' ]; then
   CheckIn
fi

所以如果这个脚本被命名,即test.sh运行它的输出将是:

sh test.sh
输出Help called!!

sh test.sh CheckIn
输出CheckIn called!!

最后请注意,在您登录的用户 shell 中,可以内置名为help和的脚本CheckIn。在这种情况下,将调用这些脚本/命令,并且不需要存在名为help/的函数CheckIn

于 2012-10-04T09:27:39.920 回答
1

$1指在命令行上传递给脚本的第一个参数。例如,如果您的脚本被调用myscript.sh并且您使用 运行它myscript.sh foo,那么$1就是foo.

if [ -z $1 ]是一个 if 语句,用于检查 的长度$1是否为零。如果是这样,它将运行help必须在脚本中此点上方某处定义(或获取)的函数。

elif [ $1 == 'CheckIn' ]检查是否$1CheckIn,如果是,则运行该CheckIn函数。

看:

Bash 初学者指南:if 简介

于 2012-10-04T09:27:53.713 回答