Você tem que analisar todas as opções (da mesma forma que o comando wrapped), ou então você precisa recorrer à heurística e estar preparado para falhar em muitos casos.
Supondo que você esteja escrevendo:
#! /bin/sh -
# process options
exec cmd "$@"
E cmd
aceitam -a
, -b
, -c
com argumento e -n
, -p
sem argumento e seu wrapper deseja saber qual é o argumento para -c
.
Então, qual é o seu wrapper para fazer se o script for chamado como:
wrapper.sh -npc foo
wrapper.sh -b -c -n -ca-c
wrapper.sh -- -cx
Não é possível descobrir qual é o argumento para -c
a menos que saiba que -n
e -p
não aceitam argumentos e -a
, -b
do.
Você pode usar heurística: procure um argumento que comece com -
e contenha c
e observe o que vem depois disso, mas isso falhará em todos os exemplos acima (exceto o primeiro, como acontece -n
e -p
não aceitam argumentos).