Como posso obter args restantes depois de retirar itens analisados usando getopts?

11

Eu quero analisar alguns argumentos para um script bash usando getopts, mas quero poder acessar os argumentos restantes que não estão incluídos na lista de opções. Por exemplo, se eu tiver uma chamada:

% script -a -b param -c param -d other arguments here

Eu teria:

while getopts "ab:c:d" opt ; do
.
done

Qual é a maneira mais fácil de obter "outros argumentos aqui", que não devem ser processados por getopts?

    
por Tim 16.12.2009 / 20:52

1 resposta

14

você precisa mudar quando você analisar um arg, ou colocar

Desloque $ ((OPTIND -1)) depois de terminar a análise e, em seguida, lide da forma usual, por exemplo,

while getopts "ab:c:d" opt ; do
.
done
shift $(expr $OPTIND - 1 )

while test $# -gt 0; do
  echo $1
  shift
done
    
por 16.12.2009 / 21:42

Tags