我正在处理现有的构建脚本,其中脚本文件包含这些(某些部分)作为构建过程的一部分,我需要运行这个脚本文件。
#!/bin/sh
if [ -z $1 ]; then
help
elif [ $1 == 'test' ]; then
test
任何人都可以让我知道这是什么意思以及价值将从哪里得到?
如果第一个参数 ( $1) 为“空”,则调用help,否则"CheckIn"调用CheckIn。
这是非常基本的东西,你应该阅读手册页。
您应该使用参数调用脚本:
/path/to/script.sh argument
如果有更多参数,它们被称为 $1, $2, ...
实际上这个脚本说:
helpCheckIn调用函数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。
$1指在命令行上传递给脚本的第一个参数。例如,如果您的脚本被调用myscript.sh并且您使用 运行它myscript.sh foo,那么$1就是foo.
if [ -z $1 ]是一个 if 语句,用于检查 的长度$1是否为零。如果是这样,它将运行help必须在脚本中此点上方某处定义(或获取)的函数。
elif [ $1 == 'CheckIn' ]检查是否$1是CheckIn,如果是,则运行该CheckIn函数。
看: