Você pode usar a função bash "getopts" duas vezes no mesmo script?
Eu tenho um conjunto de opções que significaria diferentescoisas dependendo do valor de uma opção específica. Como não posso garantir que getopts avalie essa opção específica primeiro, gostaria de executar o getopts uma vez, usando apenas essa opção específica, e depois executá-la uma segunda vez usando as outras opções.
Respostas:
4 para resposta № 1Sim, apenas redefina OPTIND depois.
#!/bin/bash
set -- -1
while getopts 1 opt; do
case "${opt}" in
1) echo "Worked!";;
*) exit 1;
esac
done
OPTIND=1
set -- -2
while getopts 2 opt; do
case "${opt}" in
2) echo "Worked!";;
*) exit 1;
esac
done
1 para resposta № 2
O getopts não modifica os argumentos originais, ao contrário do antigo executável autônomo getopt. Você pode usar os getopts internos bash repetidamente sem modificar sua entrada original.
Veja a página man bash para mais informações.
HTH.
Felicidades,
Roubar