shell 命令行参数解析

1. 手动解析参数,位置参数

  (1) $#: 参数的个数

  (2) $1...$9: 第一个参数...第9个参数

2. 内置命令解析,getopts,不支持长参数格式

    命令格式:getopts option_string variable

    第一个参数是一个字符串,包括字符和":",每一个字符都是一个有效的选项,如果字符后面带有":",表示这个字符有自己的参数。如果字符后面无":"符号表示无自己的参数

    getopts从命令中获取这些参数,并且删去了"-",并将其赋值在第二个参数中,如果带有自己参数,这个参数赋值在“OPTARG”中

test.sh

#!/bin/sh

while getopts "b:v:" opt

do
case $opt in
b)
echo "b parameter value:$OPTARG"
;;
v)
echo "v parameter value: $OPTARG"
;;
esac
done

使用:

./test.sh 或者 ./test.sh -b value 或者 ./test.sh -v 0.1 或者 ./test.sh -b value -v 0.1

原文地址:https://www.cnblogs.com/eric-geoffrey/p/4043583.html