Bash 脚本 getopts为什么最后一个参数取不到

看下面的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

posted @ 2014-11-18 17:15  hongweigg  阅读(5)  评论(0)    收藏  举报