这是我的简短剧本:
#!/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”的值不正确?