hardstatusで表示されるscreenrcで動的に生成されたログファイル


8

起動時の日付と時刻の組み合わせをGNU画面のログファイルのファイル名として使用したい。screenrcでは、

logfile '~/log/screen_%H_%m%d%Y_%0c-%t.%n'

動的に生成されたファイルを取得します。

screen_nanna13_06062012_08:03-bash.0

次に、画面でこのファイル名をハードステータスバーに表示します。使えない

hardstatus string '~/log/screen_%H_%m%d%Y_%0c-%t.%n'

プレースホルダーは時間が変更されるたびに更新されるためです。

私が思いつくことができる解決策は、画面の起動前に実行されるbashコードを含みますが、個別の画面ウィンドウが独自の動的ログファイルを取得することになっているため、それは良くありません。

画面に変数置換メカニズムはありますか?

回答:


1

画面のbacktickコマンドを使用して解決策を見つけました:

backtick 1 0 0 date +%d%b%Y_%k:%M
logfile '~/log/%H_%1`-%t.%n'
hardstatus string '~/log/%H_%1`-%t.%n'

UNIXのdateコマンドを使用して、現在の日付/時刻を%1`変数に読み込みます。唯一の問題は、セッション中に後で新しいウィンドウが作成された場合にログファイルの名前の日付が変更されないことです(ただし、適切なログファイルをより適切に識別できるため、私にとっても機能です)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.