将参数传递给脚本

Cur*_*Guy 1 unix parameters shell

如何将参数传递给脚本:

scriptname.ksh -p param1 -n param2 
Run Code Online (Sandbox Code Playgroud)

我是说如何告诉我的脚本使用由字符-p-n字符定义的两个参数?

Jus*_* L. 6

while getopts ":p:n:" Option; do
  case $Option in
    p)
      # do stuff
      # to access param1, use variable $OPTARG
      ;;
    n)
      # do stuff
      # $OPTARG again to access param2
      ;;
    \?)
      # default
      ;;
  esac
done
shift $(($OPTIND - 1))
Run Code Online (Sandbox Code Playgroud)

在第一个论点中getopts:

  • 领先:supresses getopts自己内部的错误报告
  • 字母表示选项
  • 如果一个字母后跟a :,则意味着它需要一个$ OPTARG

更多信息

getopts提供了更改option参数变量名称的功能.

请注意,getopts无法处理"长格式"参数(--help等)