我在Cent Os 7 bash shell上运行korn脚本(ksh)。 “ getopts”无法正常工作。我究竟做错了什么?

问题脚本

testcmd.ksh

#!/usr/bin/ksh

while getopts "d: m s z a b " opt; do
echo $opt
    case $opt in
        d ) echo "d" ;;
        m ) echo "mail";;
        s ) echo "snmp";;
        z ) echo "force:";;
        a ) echo "fs";;
        b ) echo "bypass";;
        ? ) echo "Usage:  [-m] [-s] [-z] ";
            exit 4 ;; 

    esac            
done    

如果我将上述脚本作为“ ./testcmd.ksh -a”运行,它将给出

./testcmd.ksh: -a: unknown option
?
Usage:  [-m] [-s] [-z] 

我期望的输出是这样的

a
fs

可能是什么问题?

如果我将shebang更改为“#!/ usr / bin / bash”,则它将按预期工作。

但是,我只能使用“#!/ usr / bin / ksh”。

我应该做些什么改变?我正在使用CentO7。

有人可以建议吗?

lxwtsqr 回答:我在Cent Os 7 bash shell上运行korn脚本(ksh)。 “ getopts”无法正常工作。我究竟做错了什么?

只需帮助正在寻找答案的任何人:

有效的答案是亚伦的评论:

Looks like the spaces mess things up. Got it running without them – Aaron

本文链接:https://www.f2er.com/2928282.html

大家都在问