shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] logica


From: groo
Subject: Re: [shell-script] logica
Date: Wed, 2 Jun 2004 13:18:33 -0300

Obrigado todo mundo pelas respostas (umas meio doidas)

eu soh queria entender a logica, tipo, se eu declaro a variavel antes ou
dentro do for, e se eu somo no fim ou no meio.

mas entendi e me surpreendi com as varias formas.
a com sed foi legaw.

sds

    Eric Anderson
    CPD Via Net SAO
    11-66432800

----- Original Message -----
From: "opa" <address@hidden>
To: <address@hidden>
Sent: Wednesday, June 02, 2004 11:08 AM
Subject: Re: [shell-script] logica


> Acredito que o problema do Eric está resolvido faz tempo, mas achei
> interessante compartilhar isto.
>
> O Felipe me lembrou que o comportamento, às vezes inesperado, do
> echo quando o parâmetro não recebe aspas ou apóstrofos, pode aqui
> ser aplicado.
>
> echo $(</tmp/valores)|tr ' ' +|bc
>
> echo $(($(echo $(</tmp/valores)|tr ' ' +)))
>
> Nas duas linhas acima o póprio echo converte os "\n" em " ", eliminando os
" "
> duplicados e aquele ao final da linha, dispensando o zero complementear.
>
> Inclusive experimentei, não sabia, o tr pode fazer substituições e limitar
a um
> o número de bytes adjacentes idênticos, simultaneamente. Ou seja, meu
> comentário anterior, com um "tr -s" adicional, esqueçam, o tr pode fazer
tudo
> numa única chamada:
>
> $ echo "1 2     3  4 "|tr " " +
> 1+2+++++3++4+
>
> $ echo "1 2     3  4 "|tr -s " " +
> 1+2+3+4+
>
> Até me empolguei e dei uma espiada no man, por alto. Acho que numa única
> chamada pode fazer muito mais coisas.
>
> E mais, notei que o tratamento matemático do shell tolera "+" sem
operando,
> ou seja não é preciso tirar as sequências ++++. :)
> Infelizmente isso não se verifica ao final. :(
>
> $ echo $((2++++++++2))
> 4
>
> $ echo $((2++++++++2+))
> bash: 2++++++++2+: syntax error: operand expected (error token is "+")
>
> Mas como isto é shell, outro shell pode ter comportamento distinto.
>
> Quanto já aprendi com esta simples questão colocada. :)
>
> Viva o maravilhoso mundo "u"!
>
>
> ------------------------------------------------------------------
> >From: Felipe Kellermann <address@hidden>
> >Date: Tue, 1 Jun 2004 19:19:24 -0300 (BRT)
> >
> >Em zsh, para um arquivo (linhas em branco de propósito):
> >
> >% < val
> >1
> >2
> >
> >3
> >
> >
> >4
> >%
> >
> >
> >Tu pode substituir, por exemplo:
> >
> >% echo ${(j:+:)$(<val)}
> >1+2+3+4
> >%
> >
> >
> >Depois é só `(e)valuate' esse resultado, que poderia ser uma substituição
> >direta nessa expressão
> >
> >--
> >Felipe Kellermann
>
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: VirusScan / Atualizado em 26/05/2004 / Versão: 1.5.2
> Proteja o seu e-mail Terra: http://www.emailprotegido.terra.com.br/
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]