在Shell脚本中处理命令行选项和参数通常使用getopts
命令来实现,以下是一个简单的例子:
while getopts ":a:b:" opt; do
case $opt in
a)
echo "Option a has value $OPTARG"
;;
b)
echo "Option b has value $OPTARG"
;;
\?)
echo "Invalid option: -$OPTARG"
;;
:)
echo "Option -$OPTARG requires an argument."
;;
esac
done
shift $((OPTIND - 1))
echo "Remaining arguments: $@"
在这个例子中,getopts
命令用来解析命令行选项,:
后面跟着的字符表示需要参数的选项,opt
保存当前解析到的选项,OPTARG
保存选项的参数。case
语句用来根据不同的选项做不同的处理。
使用shift $((OPTIND - 1))
命令来移除已经解析过的选项,剩下的参数可以通过$@
来获取。