无法读取 korn shell 参数

Unable to read korn shell Parameter

this one 之类的 SO 中浏览了一些帖子,但无法解决问题。我将 4 个参数传递给 korn shell 脚本。但它不读取第 4 个参数。这是代码

#Get Input parameters

while getopts ":s:e:n:d" OPT
do
   case $OPT in
      (s) from=$OPTARG;;
      (e) to=$OPTARG;;
      (n) process=$OPTARG;;
      (d) path=$OPTARG;;
      (\?) printerror;;
   esac
done
print "from $from" 1>&2;
print "to $to" 1>&2;
print "process $process" 1>&2;
print "path $path" 1>&2;

然后我这样执行脚本

loaddat.ksh -s 1234 -e 1234 -n 1 -d /d/asa/

无论我做什么,路径值都不会被打印出来。尝试使用和不使用引号。即使像 xyz 这样的字符串作为值。

在选项字符串中,d

后需要一个冒号
":s:e:n:d:"

因为在命令行中,选项“-d”后面应该跟它的值,在本例中是路径。

如果字符串 'd' 中的选项字母后面没有跟':',getopts 将不会检查它的值。