Se o que você quer é testar a existência e a localização de um argumento específico, tudo o que você precisa fazer é analisar a linha de comando e testar cada argumento para uma correspondência com o valor "esperado". Portanto, você precisa testar cada argumento para o valor -noenter
e, em seguida, imprimir uma linha informando a posição e o nome da variável -noenter
:
for i in 'seq 1 $#'; do
ref='eval "echo \$$i"'
if [ $ref == '-noenter' ]; then echo "arg $i is $ref"; break; fi
done
Agora, a mesma coisa, somente a posição do argumento -noenter
é armazenada em $mitsos
e a posição do argumento antes disso em $mary
:
for i in 'seq 1 $#'; do
ref='eval "echo \${$i}"'
if [ $ref == '-noenter' ]; then
mitsos=$i
eva=$(($i-1))
mary='eval "echo \${$eva}"'
break
fi
done
e agora $mitsos
tem a posição de -noenter
ou nenhum valor e $mary
o valor do argumento anterior a -noenter
. Neste ponto, se $mary
tiver o valor /dir
você sabe , o próximo argumento será -noenter
e você poderá continuar com a implementação de find
, caso contrário, use a versão ou impressão do sistema uma mensagem de erro. Finalmente, se você não se importa com a posição de -noenter
, você pode omitir a linha mitsos=$i
.