[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tratamento de parâmentros - scripts com opção -e ou -n
From: |
Marcio Gil |
Subject: |
Re: Tratamento de parâmentros - scripts com opção -e ou -n |
Date: |
Sat, 28 Aug 2010 21:21:13 -0000 |
User-agent: |
eGroups-EW/0.82 |
Ué! Será que este meu e-mail não chegou? :-)
De qualquer forma vou tentar simplificar a pergunta:
Tenho uma variável neste formato:
opt="-e[qualquer_coisa]"
Quero remover o "e" de "$opt", então eu faço assim:
$ opt="-equalquer_coisa"
$ echo "$opt" | sed "s/e//"
-qualquer_coisa
Mas se "qualquer_coisa" for vazio não funciona:
$ opt="-e"
$ echo "$opt" | sed "s/e//"
Não retorna nada, mas deveria retornar "-".
Aguém sabe a solução?
Obrigado,
Marcio.
--- Em 25/08/2010 11:06, "Marcio Gil" <marciomgil@...> escreveu
>
> Tenho o seguinte script que escrevi para remover arquivos temporários:
>
> http://bash.pastebin.com/ZfawZQmD
>
> Acontece que a opção -e não funciona quando usada nesta forma ou em conjunto
> com a opção -t (ou seja -te ou -et)
>
> O culpado está na linha 72:
>
> case "$opt" in
> -*e*) exe="1"; opt=`echo "$opt" | sed "s/e//"`
> esac
>
> Pois quando "$opt" é "-e" o comando echo interpreta como sendo opção dele
> mesmo. Infelizmente o echo não implementa a opção "--", comum nos comando do
> Unix e que resolveria o problema.
>
> Pergunto se existe uma forma elegante e o mais portável possível de resolver
> esta questão. Imaginei acrescentar um "-" extra antes de "$opt", mas se o
> usuário, por exemplo, informar -x o script vai dizer que --x é inválido...
>
> Marcio Gil.
>