Shell实现命令行的短参数和长参数的解析设置

鬼谷子叔叔 - 2024-11-08 16:02

操作步骤

默认参数

首先设置参数的默认值以及一些环境变量。

export version="v1.0.0"
export output=""

设计参数

这里使用getopt采集命令行的参数。

ARGS=$(getopt -o hvo: --long "help|version|output": "shell" -- "$@")

解析参数

这里循环解析每个命中的参数,并加以处理。

eval set -- "$ARGS"
while true; do
  case "$1" in
    -h|--help)
      echo "Usage: $0 [OPTIONS]"
      echo "  -h, --help      Print help information"
      echo "  -v, --version   Print version information"
      echo "  -o, --output    Set output file path"
      exit 0
      ;;
    -v|--version)
      echo "$version"
      exit 0
      ;;
    -o|--output)
      output="$2"
      if [ $# -ne 2 ]; then
        echo "the option 'output' must be given a value"
        exit 1
      fi
      shift 2
      ;;
    --)
      shift 2
      ;;
    *)
      break
  esac
done