は、私が実行している場合* .outのファイルに出力をログに記録したプログラムを持っています。私はいくつかの異なる時間を走らせるためにbashスクリプトを設定したので、それぞれの実行は異なる* .outファイルに書き込まれます。私は、このような最新の*の.outファイルをtail
ことが分かっ:テール最新のファイル
watch tail $(ls -tr *.out | tail -n1)
問題が参照$()
は一回だけ実行されることをあるように思われます。最初の実行が終了するので、watch
は今、新しい* .outというファイルがあっても、tail
に同じ*の.outファイルを続けています。
どのように私は1回の実行が終了した後の次の* .outのファイルに移動するには、これを変更することができますか?
私は引用符や括弧のいくつかのネストをやってみましたが、私は本当に参照の詳細を理解していません。事項はwatch
はI bashを使っているにもかかわらず、sh
にそのコマンドを渡すという事実によって複雑にされています。
ボーナスポイント:watch
毎にn
秒を繰り返すのではなく、これをtail -f
に変更することができれば素晴らしいことでしょう。
hm ..私は本当にユースケースを理解していません。あなたはリアルタイムでいくつかのファイルを読みたいですか? 'tail -f * .out'を使う方が簡単です。 – pivanchy
私は一般的に@pivanchyに同意しますが、POSIXの' tail'は一度に複数のファイルを扱うことは保証されていません。 – kojiro
@pivanchyそれは解決策です。私はそれがそれほど単純ではなかったことを理解していません –