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

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

Re: [shell-script-pt] Redirecionamentos múltiplos


From: Jamenson Ferreira Espindula de Almeida Melo
Subject: Re: [shell-script-pt] Redirecionamentos múltiplos
Date: Sat, 6 Jun 2020 20:37:41 -0300

Em sex., 5 de jun. de 2020 às 09:45, Julio C. Neves
<julio.neves@gmail.com> escreveu:
>
> Fala Jamenson,
> acho que vc não entendeu o que falei, já que eu nunca disse que não se deve 
> usar pipes. O que sempre digo é que não se deve utilizar pipes desnecessários.
>
> Sou fã ardoroso do pipe e acho que ele é um dos grandes responsáveis pela 
> programação em Shell ser tão enxuta.
>
> Se here strings (<<<) foi criado para que usemos construções do tipo:
>
> CMD <<< CADEIA
>
> no lugar de echo CADEIA | CMD
>
> Pq devemos continuar usando a forma arcaica e ineficiente?
>
> Mas, no meu entender, o problema nem é o fato de ser ligeiramente mais lento, 
> é o fato dele (assim com substituição de cmds, subst. de processos, uso de 
> parênteses, ...) rodar em um subshell e todo o ambiente criado dentro desse 
> subshell morre ao seu fim. Para simular, vou usar parênteses para criar um 
> subshell:
>
> $ var=1; (
> > echo No início, já no subshell, var tem $var
> > echo Somei 1 e var passou a ter $((++var))
> > ); echo Saindo do subshell var voltou a ter $var
> No início, já no subshell, var tem 1
> Somei 1 e var passou a ter 2
> Saindo do subshell var voltou a ter 1
>
> Como vc pode ver, o valor adquirido dentro dos parênteses foi para o brejo... 
> Veja esse:
>
> $ pwd; (cd /; pwd); pwd
> /home/julio/tstsh
> /
> /home/julio/tstsh
>
> Voltando ao pipe, se vc quiser ler um arquivo e for contando a qtd de linhas 
> para listar no final, vc não pode fazer algo do tipo:
>
> cat /etc/passwd | while IFS=: read Lname Lixo; do
>     echo -e $((++ContaLinha)) $Lname
> done; echo Meu etc/passwd tem $ContaLinha linhas
>
> Pq ContaLinha estará vazio... É só copiar e colar para testar.
>
> Abraços,
> Julio
>
> » Não tem tempo para fazer um curso presencial?
> » Na sua cidade não tem nenhum bom curso de Linux?
> » Em 27/01/2020 abriremos uma semana de inscrições
> » para uma nova turma. Veja mais detalhes em:
> »      https://educacao.dicas-l.com.br/shell-linux
>
> Também damos treinamento em sua empresa
> em qualquer cidade, com certificado e nota fiscal.
>
>
>
>
>
>
>
> Em qui., 4 de jun. de 2020 às 18:17, Jamenson Ferreira Espindula de Almeida 
> Melo <jafesp@gmail.com> escreveu:
>>
>> Saudações.
>>
>> Salvo engano, é muito comum a seguinte construção:
>>
>> comando_um | comando_dois | ... | comando_n
>>
>> Porém, conforme defende o mais conceituado "shelleiro" brasileiro, o
>> mestre Júlio Neves, deve-se evitar tal construção. O argumento
>> principal sustentado por Júlio é que tal construção cria sub processos
>> (sub shells), o que pode ocasionar perda de informações, especialmente
>> nas variáveis de ambiente.
>>
>> Para o mestre Júlio, a construção mais correta é:
>>
>> comando_um <<< $( comando_dois )
>>
>> Dadas tais premissas, pergunto:
>>
>> Qual seria a construção para múltiplos redirecionamentos?
>>
>> Pergunto, pois não encontrei (ainda) uma construção para mais que dois
>> (02) comandos.
>>
>> Cordialmente,
>>
>> Jamenson Ferreira Espindula de Almeida Melo
>> Jaboatão dos Guararapes, Pernambuco, Brasil
>> Usuário GNU/Linux nº 166197
>> https://linuxcounter.net/cert/166197.png
>>
>> Impressão digital da chave PGP:
>> 234D 1914 4224 7C53 BD13  6855 2AE0 25C0 08A8 6180
>>
>> _______________________________________________
>> Lista brasileira de usuários de shell script
>> Endereço de e-mail da lista: shell-script-pt@nongnu.org
>> Para se inscrever ou desinscrever acesse: 
>> https://lists.nongnu.org/mailman/listinfo/shell-script-pt
>> Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, 
>> acesse https://lists.nongnu.org/archive/html/shell-script-pt/
>>
>> NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize 
>> somente esta.
>
> _______________________________________________
> Lista brasileira de usuários de shell script
> Endereço de e-mail da lista: shell-script-pt@nongnu.org
> Para se inscrever ou desinscrever acesse: 
> https://lists.nongnu.org/mailman/listinfo/shell-script-pt
> Para ver os arquivos da lista (mensagens anteriores) e pesquisar nelas, 
> acesse https://lists.nongnu.org/archive/html/shell-script-pt/
>
> NOTA: A lista anterior, no Yahoo Groups, foi *desativada*. Por favor utilize 
> somente esta.

Muito grato pelos esclarecimentos. :)

Cordialmente,

Jamenson Espindula.



reply via email to

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