shell脚本,如何使用-或者--的方式接收参数
时间: 2024-01-21 15:17:16 浏览: 91
可以使用`getopts`或`getopt`命令来处理带有短选项(-)或长选项(--)的命令行参数。
使用`getopts`命令:
```bash
while getopts ":a:b:" opt; do
case ${opt} in
a )
arg_a="${OPTARG}"
;;
b )
arg_b="${OPTARG}"
;;
\? )
echo "Invalid option: ${OPTARG}" 1>&2
;;
: )
echo "Invalid option: ${OPTARG} requires an argument" 1>&2
;;
esac
done
```
在上面的示例中,`getopts`命令会将命令行参数解析为选项和参数。选项使用单个字符标识,后面可以跟着一个冒号表示该选项需要一个参数。`OPTARG`变量保存该选项的参数。
使用`getopt`命令:
```bash
args=$(getopt -o a:b: --long arga:,argb: -- "$@")
eval set -- "$args"
while true; do
case "$1" in
-a|--arga)
arg_a="$2"
shift 2
;;
-b|--argb)
arg_b="$2"
shift 2
;;
--)
shift
break
;;
*)
echo "Invalid option: $1" >&2
exit 1
;;
esac
done
```
在上面的示例中,`getopt`命令将命令行参数解析为长选项和短选项。`--long`选项后面跟着一组长选项名称,用逗号分隔,`-o`选项后面跟着一组短选项名称,用冒号表示需要参数。`shift`命令用于移除已经处理的选项和参数。
阅读全文