Fala Júlio.
To precisando achar tempo para poder parar e estudar o que eu quero ao 
invés de fazer o que eu preciso mas tá complicado.
Verdade você deu sim com certeza, teu curso foi maravilhoso mas vou 
levar alguns meses para conseguir rever tudo para fixar, pois eu só 
armazeno definitivamente uma informação quando exercito ela.
Mas viva o while! Agora garanto que não esqueço mais.

Abraços

Em 03-05-2010 22:12, Julio C. Neves escreveu:
> Fala Law, MrBiTs, Cristiano1 e Cristiano2,
> Quero falar 2 coisas:
> - Sobre o while:
> Poxa Law, assim vc me derruba, disse que fez o curso comigo e não sabia nada
> sobre o while na leitura... Quequeisso! Cara, fizemos um monte de exercício
> *sempre usando* o while com read. Qdo ensino while, passo rapidamente por
> ele e afirmo que seu maior uso é junto com o cmd read. Digo ainda
> normalmente que, nas outras linguagens, o while é executado enquanto *uma
> condição* for verdadeira. No shell, ele será executado enquanto *uma
> instrução* for bem executada e o read (em se tratando de arquivos) só volta
> um código falso ($? != 0) qdo encontra o EOF.
>
> Isso sempre é fartamente falado na aula, como tb está escrito naseção
> "Afinal como se lê?" do livro que vc ganhou no curso.
>
> - Sobre as variáveis:
> Para falar sobre isso vou dividir a msg do Cristiano em 2 partes:
> "Já pensou em usar nome de variáveis em caixa alta? IHMO, nomes de variáveis
> capitalizados são muito ruins de se escrever (perde-se muito tempo
> combinando shift+tecla), além de ruins de se ler no meio do código e pode
> causar muitos bug por erro de digitação."
>
> Concordo plenamente, já que capitalizado (termo que não gosto) vem de
> Capital Letter que em inglês é letra maiúscula e são ruins de escrever pq
> tem-se que fazer a combinação de shift+letra que pode... (aquilo tudo que
> ele escreveu). Só que o início do seu parágrafo ele mesmo discorda disso
> quando pergunta: "Já pensou em usar nome de variáveis em caixa alta?". Juro
> que não entendi, pois para mim caixa alta e capitalizado são sinônimos (a
> não ser que ele esteja querendo chamar de capitalizada a variável cuja
> primeira letra seja maiúscula, que é como eu costumo usar).
>
> Depois o Cristiano fala outra coisa que eu tb não concordo: "Mas esta é
> minha opinião. Quer um argumento técnico? Os nomes de variáveis no código
> fonte do kernel são escritos, por padrão, em caixa baixa. Então, se você
> resolver usar caixa baixa também, coisas muito ruins podem acontecer...".
> As variáveis do kernel normalmente são em minúsculas e muitas são precedidas
> por um ou dois sublinha, mas e daí o que o kernel tem a ver com o teu
> ambiente shell?. Defendo o uso de variáveis em caixa baixa (exceto a
> primeira letra de cada palavra) pq *todas* as variáveis de ambiente são em
> caixa alta, e tem um monte delas (todas exportadas) que muitos não conhecem.
> A quiza de exemplo, vou mostrar uma coisa que pode facilmente ocorrer:
>
> $ echo $USER   # Isso é uma variável do sistema
> julio
> $ read -p "Nome do usuário: " USER
> Nome do usuário: ddd
> $ echo $USER
> ddd
>
> Como vc viu a variável do sistema foi pro saco.
> PELAMORDIDEUS, NÃO FAÇA ISSO!!!<- isso não é um grito, é uma variável de
> ambiente. ;)
>
> Essa variável eu chamaria de $User ou $NomeDoUsuario, dependendo do saco do
> dia. Gosto da 1a letra de cada palavra em maiúsculo, pq evita o sublinha e
> distingue de instrução qdo se lê um programa. Me diga, como é mais fácil de
> escrever e melhor de ler: $NomeDoUsuario ou $nome_do_usuario?
>
> Abraços,
> Julio
> Cursos de Shell e Zenity em 2 fins de semana?
> - Aracaju turma de Shell em 12/05 - andersonriz...@gmail.com;
> - DF turma de Shell em 12/06 - ligue (61)3223-3000;
> - RJ turma de Shell em 14/06 - ligue (21)2210-6061;
> - Floripa turma de Shell e Zenity 12/07 – el...@7seven.com.br;
> - Turmas fechadas em outras cidades ligue (21)8112-9988.
>
>
> Em 3 de maio de 2010 21:10, Lawrence Waclawiak
> <lawrence...@yahoo.com.br>escreveu:
>
>    
>> Boa noite Cristiano.
>>
>> Pensar em usar eu havia pensado, porém a forma que conhecia para usar o
>> while para ler um arquivo linha a linha era algo lusitano.
>> Não sabia que o while tinha a facilidade de por si só ler o arquivo
>> linha a linha, para isso eu criava um contador(COUNT) e com o comando
>> "LINE=$(awk NR==$COUNT arquivo)" capturava cada linha para depois com o
>> cut recuperar os campos.
>>
>> A solução do MrBits foi praticamente igual a sua mas o que realmente fez
>> o ganho astronômico de desempenho foi a sacada dele de escrever tudo de
>> uma só vês no arquivo de saída.
>>
>> O grep eu sabia dessa facilidade, mas acabei escrevendo usando o cat |
>> por costume de quando eu ainda não sabia, vou cuidar para não faze-lo mais.
>>
>> Sobre as variáveis agora eu fiquei na dúvida pois eu sempre as usava em
>> caixa alta, até que fiz o Curso de Shell com o Júlio e ele indicou que
>> deveríamos usar capitalizadas pois as variáveis de ambiente são por
>> default em caixa alta.
>>
>> Fiz alguns testes e constatei que não existe perigo de eu alterar uma
>> variável de ambiente de dentro de um script apenas atribuindo valores a
>> ela, ela só realmente muda o valor da variável de ambiente se eu usar o
>> export $VAR, porém se eu tentar ler uma variável que ainda não tenha
>> algum valor atribuído e que possua o mesmo nome da uma variável de
>> ambiante, eu receberei o valor dessa variável de ambiente, também,
>> depois de atribuir um valor a uma variável com o mesmo nome de uma
>> variável de ambiente eu não posso mais recuperar o valor da variável de
>> ambiente.
>> Que confusão...
>> Bom, concordo 100% que é muito melhor para visualizar no código as
>> variáveis em caixa alta, então será que uma melhor opção não seria usar
>> as variáveis em caixa alta mas com um _ no início? tipo $_USER $_NAME
>> $_STATUS ?
>>
>> Acho que assim uniria o útil ao agradável.
>>
>> Muito obrigado pela sua atenção.
>>
>> Abraços,
>> Lawrence Waclawiak
>>
>>
>> Cristiano escreveu:
>>      
>>> --- Em shell-script@yahoogrupos.com.br
>>> <mailto:shell-script%40yahoogrupos.com.br<shell-script%2540yahoogrupos.com.br>>,
>>>        
>> Lawrence Waclawiak
>>      
>>> <lawrence...@...>  escreveu
>>>        
>>>> Tudo funciona corretamente porém a maquina demora um pouco para
>>>> processar toda a lista e montar o dhcpd.conf, gostaria de saber se
>>>> alguém conhece uma forma mais eficiente de recuperar o valor desses
>>>> campos que não seja o que eu utilizei nem o awk -F';' '{print $x}' pois
>>>> esse é mais pesado ainda.
>>>>          
>>> Já pensou em usar o while?
>>>
>>> http://pastebin.com/8Xdf5j9F<http://pastebin.com/8Xdf5j9F>
>>>
>>> 2 Dicas que você não pediu, se me permite:
>>>
>>> a) O grep tem capacidade de ler o conteúdo dos arquivos. Portanto,
>>> você não precisa de um pipe para pesquisar regex dentro de arquivos
>>> textos, como fez em na linha 43 do script (vide "cat $Database|egrep
>>> -v '^#'"). Basta indicar o nome do arquivo após o padrão da regex,
>>> como fiz na sugestão.
>>>
>>> b) Já pensou em usar nome de variáveis em caixa alta? IHMO, nomes de
>>> variáveis capitalizados são muito ruins de se escrever (perde-se muito
>>> tempo combinando shift+tecla), além de ruins de se ler no meio do
>>> código e pode causar muitos bug por erro de digitação. Mas esta é
>>> minha opinião. Quer um argumento técnico? Os nomes de variáveis no
>>> código fonte do kernel são escritos, por padrão, em caixa baixa.
>>> Então, se você resolver usar caixa baixa também, coisas muito ruins
>>> podem acontecer.... ;-)
>>>
>>>
>>>        
>>
>>
>>
>> ------------------------------------
>>
>> ---------------------------------------------------------------------
>> 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: shell-script-unsubscr...@yahoogrupos.com.br
>> ---------------------------------------------------------------------
>> Esta lista é moderada de acordo com o previsto em
>> http://www.listas-discussao.cjb.net
>> ---------------------------------------------------------------------
>> Servidor Newsgroup da lista: news.gmane.org
>> Grupo: gmane.org.user-groups.programming.shell.brazil
>>
>> Links do Yahoo! Grupos
>>
>>
>>
>>      
>
> [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: shell-script-unsubscr...@yahoogrupos.com.br
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> 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: shell-script-unsubscr...@yahoogrupos.com.br
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    shell-script-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a