无法读取 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 将不会检查它的值。
在 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 将不会检查它的值。