Você tem essa linha
while getopts "ml:" opt
Isso informa ao shell que m
pode existir, mas não usa nenhum parâmetro e que l
pode aparecer com exatamente um parâmetro.
Suspeito que você quisesse usar getopts 'm:l' opt
.
Eu tenho este código, e quando eu o chamo na linha de comando, ele mostra a opção echo in / a que eu tenho em cada opção / mas $ OPTARG é indefinida. E eu não tenho ideia do porquê.
OPTIND=1
optm=
optl=
while getopts "ml:" opt
do
case "$opt" in
m)
optm=$OPTARG
echo "m was triggered"
;;
l)
moznostl=$OPTARG
echo "l was triggered"
;;
esac
done
shift "$((OPTIND-1))"
e minha segunda pergunta é: %código% isso pode ser usado para começar com o segundo argumento? Quer dizer, funciona, mas é uma maneira legítima de fazer isso. por exemplo:
./project first -l second
para pular o primeiro argumento e começar com -l?
Você tem essa linha
while getopts "ml:" opt
Isso informa ao shell que m
pode existir, mas não usa nenhum parâmetro e que l
pode aparecer com exatamente um parâmetro.
Suspeito que você quisesse usar getopts 'm:l' opt
.
Tags bash