shell使用getopts长选项
时间: 2023-05-12 21:05:30 浏览: 75
可以使用getopt命令来解析长选项,getopt命令可以在shell脚本中使用,它可以解析命令行参数并返回选项和参数。使用getopt命令时,需要指定选项和参数的格式,然后将命令行参数传递给getopt命令即可。以下是一个示例代码:
```bash
#!/bin/bash
# 定义长选项
LONG_OPTS="help,version,output:"
# 解析命令行参数
ARGS=$(getopt -o hv:o: --long $LONG_OPTS -- "$@")
# 检查解析结果
if [ $? -ne 0 ]; then
echo "Invalid arguments"
exit 1
fi
# 处理解析结果
eval set -- "$ARGS"
while true; do
case "$1" in
-h|--help)
echo "Usage: $0 [OPTIONS]"
echo "Options:"
echo " -h, --help Show help"
echo " -v, --version Show version"
echo " -o, --output=FILE Output file"
exit 0
;;
-v|--version)
echo "Version 1.0"
exit 0
;;
-o|--output)
shift
OUTPUT_FILE="$1"
;;
--)
shift
break
;;
*)
echo "Invalid option: $1"
exit 1
;;
esac
shift
done
echo "Output file: $OUTPUT_FILE"
```
在上面的代码中,我们定义了三个长选项:--help、--version和--output,其中--output需要一个参数。然后使用getopt命令解析命令行参数,并使用while循环处理解析结果。如果用户指定了--help或--version选项,则输出帮助信息或版本号并退出。如果用户指定了--output选项,则获取其参数并保存到OUTPUT_FILE变量中。最后输出OUTPUT_FILE的值。