无法读取korn shell参数

时间:2015-10-12 06:18:00

标签: shell unix ksh

this one中删除了很少的帖子,但无法解决问题。我将4个参数传递给korn shell脚本。但它没有读到第4个arg。这是代码

#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这样的字符串也是值。

1 个答案:

答案 0 :(得分:2)

在选项字符串中,d

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

因为在命令行中,期望选项'-d'后面跟着它的值,在这种情况下是一个路径。

如果字符串“d”中的选项字母后面没有“:”,则getopts不会检查其值。