Bash Getopts未正确解析参数

Bash Getopts未正确解析参数,bash,shell,Bash,Shell,我有以下shell脚本- while getopts “h:f:p:u” OPTION do case $OPTION in h) usage exit 1 ;; f) FILE=$OPTARG ;; u) US=$OPTARG ;; p)

我有以下shell脚本-

while getopts “h:f:p:u” OPTION
do
     case $OPTION in
         h)
             usage
             exit 1
             ;;
         f)
            FILE=$OPTARG
             ;;
         u)
            US=$OPTARG
             ;;
         p)
             PASSWD=$OPTARG
             ;;
         ?)
             usage
             exit
             ;;
     esac
done

echo "$FILE"
echo "$PASSWD"
echo "$US"
我使用以下命令行参数-

-u root -f mydb  -p h2

屏幕上没有输出。为什么?

应该是
而getopts“hf:p:u:”OPTION
应该是
而getopts“hf:p:u:”OPTION
你对getopt的调用应该是这样的

while getopts “hf:p:u:” OPTION

。。。因为
h
不接受参数,而其他选项接受参数。

您对getopt的调用应该如下所示

while getopts “hf:p:u:” OPTION

。。。因为
h
不接受参数,其他选项接受。

@红蟋蟀是对的。如果需要选项的参数,请在选项标志后放置:(冒号)。编辑我的答案。@redcricket是对的。如果需要选项的参数,请在选项标志后放置:(冒号)。编辑我的答案。