有必要在脚本中指定命令行选项取值。getopts提供了一种方式,即在option_string中将一个冒号放在选项后,例如:
getopts abcsd: OPTION
其中abcs可以不加实际参数值传递,而选项d必须要带参数,变量OPTARG保存该值,变量OPTIND则是保存存储原$*中下一个在处理的元素位置。
#!/bin/sh
ALL=false
HELP=false
FILE=false
VERBOSE=false
COPIES=0
while getopts ":ahfv:c" OPTION
do
case $OPTION in
a) ALL=true
echo "ALL is $ALL"
;;
h)HELP=true
echo "HELP is $HELP"
;;
f)FILE=true
echo "FILE is $FILE"
;;
v)VERBOSE=true
echo "VERBOSE is $VERBOSE"
;;
c)COPIES=$OPTARG
echo "COPIES is $OPTARG"
echo $OPTARG
;;
\?) #usage statement
echo "`basename $0` -[a h f v] -[c value] file" >&2
exit 1
;;
esac
done
本文介绍如何使用getopts工具处理Shell脚本中的命令行选项。通过示例代码展示了如何定义并处理不同类型的选项,包括带有参数的选项。文章还解释了变量OPTARG和OPTIND的作用。
7万+

被折叠的 条评论
为什么被折叠?



