我正在Cent Os 7 bash shell上运行korn脚本(ksh)。 “ getopts”未按预期运行。我在做什么错?

问题描述 投票:0回答:1

问题脚本

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”。

我应该做什么改变?我正在使用CentO 7。

有人可以请教吗?

问题脚本testcmd.ksh#!/ usr / bin / ksh,而getopts“ d:m s a a b” opt;回显$ opt情况下$ opt在d中)回显“ d” ;; m)回显“邮件”; s)回显“ snmp”; z ...

bash centos7 ksh getopts
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.