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

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

Re: RES: [shell-script] Variáveis e arquivos....


From: Mauricio
Subject: Re: RES: [shell-script] Variáveis e arquivos....
Date: Wed, 19 Oct 2005 17:55:37 -0200
User-agent: Mozilla Thunderbird 1.0.7 (X11/20050923)

Siiiiiiiiiiiiiiiiiiiiiiiiimmmmmmmmmmmmmmmmmmmmm!!!!!!!!!!!!!!!!!!!!!!!!
Alguém pode explicar qual a diferenća entre
o echo com e sem as aspas????

Obrigadão!!!
Ricio

Rodrigo Vilaça wrote:
Se você fizer echo "$CONSULTA" > /tmp/consultadehoje ?

Funciona?

[]'s
Rodrigo Vilaça


Oi!
Tudo bem?
Eu acho que não expliquei direito. Fiz um menu no início do script para escolher se quero fazer a consulta no momento (e essa parte faz bom uso do while e do read atribuindo cada campo a sua variável - obrigado! - e já está funcionando) ou então quero usar uma consulta anterior salva em disco. E o problema está nisso. Essa consulta anterior salva em disco não permanece num formato que eu possa usar um laćo como o while, por exemplo, ou então cortar campos com o akw ou cut. O que acontece:

Suponha que eu tenha uma consulta do tipo:

campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4
campo1 campo2 campo3 campo4

para n linhas (e são muitas eheheh). Depois de armazenada na variável $CONSULTA, por exemplo, eu estou salvando desta forma:

echo $CONSULTA  > /tmp/consultadehoje

Quando eu leio esse arquivo eu descubro que ele ficou assim:



campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4 campo1 campo2 campo3 campo4


Entendeu? Ou seja, sem a quebra de linha eu nào tenho como usar um laćo ou qualquer outro separador por campos (na verdade eu tenho, eu sei, eu poderia fazer uma análise do tipo de dado com um egrep e expressão regular e com isso delimitar as linhas - mas eu acho que isso é tornar mais longo algo que pode ser mais rápido). Então a pergunta é: Como eu armazeno essa variável $CONSULTA em disco mantendo o formato original da consulta?

Abraćo e obrigado pela atenćào,

Ricio




*/

Acho que o seu problema se resolve num laço. Digamos que você faça:

for LINHA in $(mysql -u usuario -psenha -N -e "Select * from

tabela" BANCO) ; do echo $LINHA ; done

Acho uma forma mais inteligente de se tratar o resultado de uma

consulta a dados. Vai bem de encontro às filosofias de desenvolvimento que dizem que uma consulta deve ser tratada linha a linha, campo a campo.
Ainda podemos estender esse conceito para algo como:

mysql -u root -psenha -N -e "Select host,user,db from db" mysql | \
while read HOST USER DB ; do
  echo $HOST
  echo $USER
  echo $DB
done e ao invés de tratarmos nossa linha de dados como uma coisa só (

sempre passível de ser separada por um set - $LINHA ), temos como tratar os campos individualmente, sem contar a economia de processamentos, IO...


[As partes desta mensagem que não continham texto foram removidas]



---------------------------------------------------------------------
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 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











reply via email to

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