Além de usar um arquivo temporário para ajudar, existe uma maneira / programa de armazenar em buffer a entrada, stdin
mas não produz o conteúdo até obter o arquivo EOF
. Também não quero usar uma variável de shell (por exemplo buffer=$(cat)
).
Este programa deve se comportar da seguinte forma (suponha que o nome do programa seja buffered-cat
):
$ buffered-cat
line 1
line 2
line 3
^D # Ctr-D here(End of Line)
Agora que o programa recebeu ^D
, o buffered-cat
resultado é gerado
line 1
line 2
line 3
sort
para esse fim. Obviamente, tem efeitos colaterais que podem ser indesejáveis.