Como alimentar a variável com o final das linhas para a entrada padrão de outro aplicativo no bash?

1

Existe uma maneira (simples) de alimentar variáveis com fim de linha para outro programa em BASH? Considere o exemplo:

flist=$(ls -l)
echo $flist

echo substituirá todos os finais de linha por espaços, então minha saída será diferente do conteúdo da variável. Outro exemplo:

echo $flist | grep myfile.txt

Este comando não funcionará como esperado para gerar apenas informações sobre myfile.txt . Como faço para imprimir a linha que contém myfile.txt .

Aqui está uma solução:

cat << EOF | grep myfile.txt       
$flist
EOF

Qualquer coisa menos feia?

    
por Alex Gitelman 05.03.2012 / 20:12

1 resposta

4

O problema não é echo , é o shell. Tente usar aspas duplas:

echo "$flist" | grep myfile.txt

Deve funcionar bem.

    
por 05.03.2012 / 20:26

Tags