A solução mais simples é provavelmente sponge
como @heemayl sugerido . Alternativamente, você poderia fazer algo assim:
command > tmpfile && mv tmpfile watched_file
Isso fará com que command
salve sua saída em tmpfile
, que só será renomeada para watched_file
(o arquivo que seu servidor está configurado para assistir) assim que o comando sair e somente se tiver saído com sucesso . Para também renomeá-lo em caso de falha, use:
command > tmpfile; mv tmpfile watched_file