Parece que você quer que command
termine de gravar no arquivo, mas deseja interromper a exibição no console. Eu tomaria uma abordagem diferente para a solução. Em seu script:
> "file"
command > "file" &
tail -n +1 -F "file"
Correção:
A resposta original usou -n 0
, que inicialmente não gera linhas de "file"
, mas gera as linhas adicionadas a "file"
depois que tail
é iniciado. Esta não foi minha intenção - foi um erro. Eu pretendia usar uma opção que listasse todas as linhas de "file"
mesmo se command
tivesse escrito algumas antes de tail
ter sido iniciado. A opção correta para esse comportamento é -n +1
.
Na página tail(1)
man:
-n, --lines=K output the last K lines, instead of the last 10; or use -n +K to output lines starting with the Kth
A primeira linha limpa o conteúdo do arquivo no caso de uma condição de corrida em que tail
atinge o arquivo antes de command
.