看以下的Bash脚本:
#!/bin/bash
interval=0
count=0
pid=""
while getopts "p:d:n" arg
do
case $arg in
p)
pid=$OPTARG
echo "pid: $pid"
;;
d)
interval=$OPTARG
echo "interval:$interval"
;;
n)
count=$OPTARG
echo "count:$count"
;;
\?)
echo "unkonw argument"
exit 1
;;
esac
done
发现最后一个參数n总是获取不到,为什么呢?
原来,n后面少了一个冒号。參数都要要带上一个冒号。包含在最末尾的參数。
正确的写法:
while getopts "p:d:n:" arg