command 1
bashでstdinを介して多くのコンテンツを受け入れてから、そのコンテンツをに出力するコマンドを含むコマンドを実行しようとしています。file.txt
ただし、command 1
コンテンツストリームが作成され、起動時file.txt
にすぐに生成され、完了するとすぐに生成されます。更新すると正しい出力が出ます。command 1
command 1
echo 'a lot of content' | command 1 > file.txt
問題は、完全に完成したときにのみ作成または触れたいということですfile.txt
。command 1
これを達成する方法はありますか?
編集する:
ユースケース:私はファイルが変更されるたびに更新されるWeb開発サーバーを使用しているので、実際にファイルを更新する前にいくつかの前処理を実行します。
上記のコマンドの問題は、ファイルが更新されたり空の内容が生成されたりすると、サーバーがすぐに空のページにリフレッシュされるため、後処理が完了するまで待機したいことです(約4秒かかります)。これにより、タッチがfile.txt
ページ上で正しくレンダリングされる可能性があります。
したがって、ここでコマンドを実行すると、更新が完了するとcommand 1
Web開発サーバーが自動的に更新されます。file.txt
ベストアンサー1
sponge
GNUを使用する場合moreutils
:
echo 'a lot of content' | command 1 | sponge file.txt
または一時ファイルを使用してください。