砂拉豆 发表于 2018-8-25 14:00:07

shell编程——getopts用法小结

  shell脚本或函数传参数,可以访问位置变量来使用参数的值。但是在参数比较复杂的情况下,最好使用getopts处理,用来处理命令行的选项和参数。
  语法格式:
  getopts option_string args
  若script.sh参数为-f filename -e editor -p cat,即./script.sh -f filename -e editor -p cat
  选项和参数的判断可以如下:
  while getopts f:e:p:option
  do
  case "${option}" in
  f)
  file_name=${OPTARG};;
  e)
  editor=${OPTARG};;
  p)
  page=${OPTARG};;
  \?)
  command;;
  esac
  done
  option_string包含被处理的选项字符,如f,e,p。如果某个选项后有冒号,表示这个选项后要指定参数,选项和参数之间空格分隔,如-f filename
  选项会保存在args中,如示例的option,处理f选项时,$option的值为f;参数值会保存在OPTARG中,处理f选项时,$OPTARG值为filename。
  getopts每次成功处理选项后,退出状态是0
  当getopts命令返回非0值表示没有选项再被处理,while循环退出。
  如果某个选项后有冒号,表示这个选项后要指定参数,若执行脚本时,选项后没有参数,getopts会把?赋值给option。?为特殊字符,使用原样时,需要转义。

页: [1]
查看完整版本: shell编程——getopts用法小结