Getopts 循环不工作

Getopts loop not working

我正在编写 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))

None 个上述变量正在设置中。

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

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