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