От help getopts
(в bash
):
getopts: getopts optstring name [arg] Parse option arguments. Getopts is used by shell procedures to parse positional parameters as options. OPTSTRING contains the option letters to be recognized; if a letter is followed by a colon, the option is expected to have an argument, which should be separated from it by white space.
Я думаю, что это справедливо и для sh
. Вы должны попробовать ":a:f:l:r:hv"
вместо ":a:f:l:r:h:v:"
.