Getopts循环不起作用

时间:2015-06-21 08:00:47

标签: bash loops getopts

我正在使用bash脚本,我决定使用getopts来获取选项,但我使用的循环不起作用!有人可以帮助我吗?

while getopts "u:p:k:s:t:c:l:" flag
do
    echo $flag
    case "$flag" in
        k)  APIKEY="$OPTARG"
            ;;
        s)  APISECRET="$OPTARG"
            ;;
        u)  USERNAME="$OPTARG"
            ;;
        p)  PASSWORD="$OPTARG"
            ;;
        t)  TITLE="$OPTARG"
            ;;
        c)  CATEGORY="$OPTARG"
            ;;
        l)  LANGUAGE="$OPTARG"
            ;;
 esac
done
shift $((OPTIND-1))

没有设置上述变量。

1 个答案:

答案 0 :(得分:1)

不要将=getopts和短选项一起使用。此外,如果您想提供“非选项”,例如文件名(在你的情况下为video.mp4),它们应该是最后的,而不是在选项之前(并且你必须相应地更改代码);或者你可以在开始选择循环之前处理它们(和shift)。

dmUpload.sh -u USERNAME -p PASS -k KEY -s SECRET -c CAT -t TILE -l LANG video.mp4