getopts无法正确解析args

时间:2019-08-30 13:22:21

标签: bash getopt getopts

这是我的简短剧本:

#!/bin/bash
user=""
secret=""
pkgname=""

while getopts ":p:s:u:" opt; do
  case ${opt} in
        p )
        pkgname=$OPTARG
        echo "p=$pkgname"
     ;;
      s )
      secret=$OPTARG
        echo "s=$secret"
      ;;
   u )
      user=$OPTARG
        echo "u=$user"
      ;;
   \? )
        usage
        exit 1
      ;;
    :)
    echo "Option -$OPTARG requires an argument."
    usage
    exit 1
  esac
done

当我使用以下命令运行它时:

./script.sh -u 'uuuu' -s 'aaaa' -p pkg.rpm

输出:

u=uuuu
s=aaaa -p

虽然我希望是这样

u=uuuu
s=aaaa
p=pkg.rpm

我也尝试通过更改顺序来对参数进行多种组合,但无法解决。 为什么“ s”的值不正确?

0 个答案:

没有答案
相关问题