Korn shell getopts语法错误

时间:2014-06-03 00:44:04

标签: shell ksh getopts

我正在尝试编写一个使用getopts来获取命令行选项的Korn shell脚本。我正在使用的书中给出的示例给出了使用getopts的说明:

#!/bin/ksh
a="not selected"
b="not selected"
b_arg="not selected"
c="not selected"
c_arg="not selected"
d="not selected"

while getopts "ab#c:d" optchar ; do
   case ${optchar} in
      a)  a="selected"
          ;;                # the ;; marks the end of this case

      b)  b="selected"
          b_arg=${OPTARG}
          ;;

      \?) echo "error message goes here"
          exit 1
          ;;
   esac
done

我正在尝试编写一个Korn shell脚本,该脚本包含-c-l-p-r-f,但是当我更改循环到

c="not selected"
l="not selected"
p_arg="not selected"
p="not selected"
r_arg="not selected"
r="not selected"
f="not selected"

while getopts "clp#r:f" optchar ; do
   case ${optchar} in
     c)  c="selected"
         ;;                # the ;; marks the end of this case

我收到错误,指出"第13行的语法错误:'""但如果我只是更改了字符串中的变量,我就不明白这会导致语法错误。感谢您指出正确方向的任何帮助或解释!

1 个答案:

答案 0 :(得分:1)

while getopts "ab#c:d" optchar ; do

角色在那里做什么?应该是

while getopts "ab:c:d" optchar ; do