1. ホーム
  2. bash

[解決済み] bashスクリプトの実行中に出力を強制的にファイルに出力する。

2023-01-11 04:10:31

質問

小さなスクリプトがあり、毎日crontabから次のコマンドで呼び出されています。

/homedir/MyScript &> some_log.log

この方法の問題点は、some_log.logはMyScriptが終了した後にしか作成されないことです。私はプログラムの実行中にその出力をファイルに流したいので、次のようなことができます。

tail -f some_log.log

といった具合に、進行状況を把握することができます。

どのように解決するのですか?

bash 自身は、ログファイルに実際に出力を書き込むことはありません。 その代わり、スクリプトの一部として呼び出されたコマンドは、それぞれ個別に出力を書き、その気になったときにフラッシュします。 したがって、この質問は、bash スクリプト内のコマンドを強制的にフラッシュさせる方法であり、コマンドが何であるかに依存します。