Opa,
Vc ta fazendo algo errado, verifique se todos os espacos, aspas, ponto
e virgulas estão certos ;-)
$ cat teste
#!/bin/bash
while read linha
do echo "linha = $linha"
done < <(ls -tr | tail -n 4)
$ ls
teste
$ ./teste
linha = teste
Aqui funfa!
On 4/12/06, Felipe Sultani <[EMAIL PROTECTED]>
Entao tiago, fiz como vc disse:
#!/bin/bash
while read linha
do echo "linha = $linha"
done < <(ls -tr | tail -n 4)
line 5: syntax error near unexpected token `<'
Opa, desculpe
faltou + um <
while read linha
do echo "linha = $linha"
done < <(ls -tr | tail -n 4)
Explicação: a estrutura
while ... done < arquivo
insere o conteudo do arquivo na entrada padrão (stdin), quando vc faz while
read variavel
vc lê atraves do read a stdin (que só vê o conteudo do arq
Tiago,
Vc tem razao, o pipe gera um processo filho, mas o redirecionamento do stdin
que vc enviou nao funciona:
4.sh: line 4: syntax error near unexpected token `('
4.sh: line 4: `done <( ls -tr | tail -n 4 )'
Felipe
Tiago Barcellos Peczenyj <[EMAIL PROTECTED]> escreveu:Ola
O pip
Ola
O pipe | gera um subshell, então a sua variavel é copiada para o subshell,
incrementada e some.
Experimente usar
while read arq
do echo "SEQ = $SEQ <$arq>"
(( SEQ++ ))
done <( ls -tr | tail -n 4 )
On 4/11/06, Felipe Sultani <[EMAIL PROTECTED]> wrote:
>
> Srs,
>
> Fiz um script q varre os a