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" <marciom...@...> 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. >