在这里做一些媒体处理:
case "$3" in
all)
:
;;
[a-z][a-z][a-z])
if [ "$2" == "subtitles" ]; then switches="$switches -s $3"
if [ "$2" == "audio" ]; then switches="$switches -a $3"
;;
*)
printf 'Invalid language code for language (should be 3-letter ISO-639 or "all"): %s\n' "$2"
exit 1
;;
esac
这是为了确保az 之间$3
是一个或三个字母。all
我的问题是,如果为空,*
我的命令会失败。$3
如果我删除它,我可以继续,但我无法确定az 之间$3
是3 个字母还是 3 个字母。all
我该如何解决这个问题?
使用模式
匹配一个
all
或一个空字符串。