シェルリダイレクト - 説明ではなく名前に従います。

シェルリダイレクト - 説明ではなく名前に従います。

バックグラウンドで実行されるシェルスクリプトがありますが、これが行う唯一の作業は、STDOUTがファイルに追加されるコマンドを1つだけ実行することです。

my_blocking_command >> my_file

行数が多すぎるのを防ぎたいので、次のように実行しました。

[ "$(cat my_file)" -ge 30 ] && tail -n20 my_file | sponge my_file

ファイルを上書きすると問題が発生します。ファイル記述子は現在ファイルを指していませんmy_filemy_blocking_command作成されたファイル記述子は、目的のファイルを指していません。

my_file上書きしてもコマンド出力が常にリダイレクトされるようにするにはどうすればよいですか? (ファイル記述子ではなく名前に従ってください。例tail --follow=name:)

それとももっと良い方法がありますか?

ベストアンサー1

おすすめ記事