build.sh解读

1. #!/bin/sh

程序必须以#!/bin/sh开始,必须放在文件的第一行。

符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。当编写脚本完成时,如果要执行该脚本,还必须使其可执行。要使编写脚本可执行:

编译 chmod +x filename 这样才能用./filename 来运行, chmod +x  filename用来将文本文件转变为可执行文件。

2. export ROOT_DIR=$PWD

Linux export 命令用于设置或显示环境变量。在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。

Linux pwd(英文全拼:print work directory) 命令用于显示工作目录,执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。

$ 符号在Linux系统里面用于获取一个变量的值,$PWD 获得当前工作目录路径的字符串值。

3. echo "Usage:"

Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:echo string

4. [ "$#" -lt 1 ] 

当调用该脚本表示没有提供参数时该如何处理。

5.while getopts ":a:bc:" opt

getopts的使用

语法格式:getopts [option[:]] [DESCPRITION] VARIABLE

option:表示为某个脚本可以使用的选项

":":如果某个选项(option)后面出现了冒号(":"),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION)

VARIABLE:表示将某个选项保存在变量VARIABLE中

getopts是linux系统中的一个内置变量,一般用在循环中。每当执行循环是,getopts都会检查下一个命令选项,如果这些选项出现在option中,则表示是合法选项,否则不是合法选项。并将这些合法选项保存在VARIABLE这个变量中。

getopts还包含两个内置变量,及OPTARG和OPTIND

OPTARG就是将选项后面的参数(或者描述信息DESCPRITION)保存在这个变量当中。

OPTIND:这个表示命令行的下一个选项或参数的索引(文件名不算选项或参数)

while getopts ":a:bc:" opt
do
    case $opt in
        a)
        echo $OPTARG $OPTIND;;
        b)
        echo "b $OPTIND";;
        c)
        echo "c $OPTIND";;
        ?)
        echo "error"
        exit 1;;
    esac
done
while getopts ":a:bc:" opt #第一个冒号表示忽略错误;字符后面的冒号表示该选项必须有自己的参数。
 
原文地址:https://www.cnblogs.com/pomodoro/p/15305013.html