その内容をファイル[重複]に追加する前に、標準出力ストリームが完了するまで待ちます。

その内容をファイル[重複]に追加する前に、標準出力ストリームが完了するまで待ちます。

command 1bashでstdinを介して多くのコンテンツを受け入れてから、そのコンテンツをに出力するコマンドを含むコマンドを実行しようとしています。file.txtただし、command 1コンテンツストリームが作成され、起動時file.txtにすぐに生成され、完了するとすぐに生成されます。更新すると正しい出力が出ます。command 1command 1

echo 'a lot of content' | command 1 > file.txt

問題は、完全に完成したときにのみ作成または触れたいということですfile.txtcommand 1

これを達成する方法はありますか?

編集する:

ユースケース:私はファイルが変更されるたびに更新されるWeb開発サーバーを使用しているので、実際にファイルを更新する前にいくつかの前処理を実行します。

上記のコマンドの問題は、ファイルが更新されたり空の内容が生成されたりすると、サーバーがすぐに空のページにリフレッシュされるため、後処理が完了するまで待機したいことです(約4秒かかります)。これにより、タッチがfile.txtページ上で正しくレンダリングされる可能性があります。

したがって、ここでコマンドを実行すると、更新が完了するとcommand 1Web開発サーバーが自動的に更新されます。file.txt

ベストアンサー1

spongeGNUを使用する場合moreutils

echo 'a lot of content' | command 1 | sponge file.txt

または一時ファイルを使用してください。

おすすめ記事