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

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

Re: [shell-script] Laço com while não continua após primeira entrada


From: jimmy
Subject: Re: [shell-script] Laço com while não continua após primeira entrada
Date: Mon, 12 Dec 2011 22:15:10 -0200
User-agent: mutt-ng/devel-r804 (Linux)

On Mon, Dec 12, 2011 at 03:57:26PM -0300, M. Rodrigo Monteiro wrote:
> 2011/12/12 miranda <address@hidden>
> >
> > acredito que você precisará utilizar a opção
> > -n
> > do ssh
> > Dá uma olhhadinha no man para entender o porquê
> 
> Era exatamente isso. Obrigado!
> Vi o man, mas realmente não entendi porquê não funciona...
Apenas para contextualizar,
extraindo o trecho relevante da man page temos:

    -n      Redirects stdin  from /dev/null (actually,  prevents reading
            from  stdin). (...)
    
Precisamos  entender que  há um  redirecionamento indesejado  da entrada
padrão aqui pois, quando você fez:

    while ...
    done < arquivo

sua entrada padrão  é "arquivo" e você deseja iterar  pelas linhas desse
arquivo dentro do while  e, ao não usar o switch -n no  ssh, fez com o o
mesmo passasse a ler "arquivo" antes que while pudesse fazê-lo.

Podemos constatar isso fazendo uma  simples experiência: passando para o
ssh algum comando leia stdin (no caso "arquivo") e nos mostre essa
leitura:

    $ cat arquivo
    eu
    comi
    todo
    seu
    input
    :P
    
    $ while read line; do
          ssh 127.0.0.1 'while read stdin; do
                             echo $stdin
                         done'
          echo li com while: $line
      done < arquivo
      comi
      todo
      seu
      input
      :P
      li com while: eu

Faça testes removendo o comando ssh e também inserindo o switch -n.

> 
> M. Rodrigo Monteiro
> 
> "Free as in Freedom, not free as in free beer"
> "As we are liberated from our own fear, our presence automatically
> liberates others"
> Linux User # 403730

[]'s
-- 
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
http://tecnoveneno.blogspot.com


reply via email to

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