我正在使用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))
没有设置上述变量。
答案 0 :(得分:1)
不要将=
与getopts
和短选项一起使用。此外,如果您想提供“非选项”,例如文件名(在你的情况下为video.mp4
),它们应该是最后的,而不是在选项之前(并且你必须相应地更改代码);或者你可以在开始选择循环之前处理它们(和shift
)。
dmUpload.sh -u USERNAME -p PASS -k KEY -s SECRET -c CAT -t TILE -l LANG video.mp4