backtickを使うことによって,何らかのコマンドの出力をcaptionに表示できる.
具体的には,.screenrcの中に”backtick id lifespan autorefresh cmd args …”という形で実行するコマンドを書き込んで,captionの設定中で”%id`”で参照する.
backtick 0 0 10 date -u caption always "%0`"
この場合id=0, lifespan=0, autorefresh=10という設定で,”date -u”を実行する指定になる.結果として10秒に1度captionに時刻が更新されるようになる.
このlifespanとautorefreshの関係が理解しづらいのだが,
lifespanは前にコマンドを実行した内容が,有効でなくなるまでの時間.
autorefreshはcaptionの内容を再作成して更新する時間.
なので,autorefreshの時刻が来ときに前にコマンドを実行してからlifespan以上の秒数が立っていると,コマンドは再実行されているので表示内容が変わる.
lifespan=5, autorefresh=3の場合
0 5 10 15 lifespan |----|----|----| autorefresh |--|--|--|--|--| o x o x o o
3秒と9秒でのrefreshでは,lifespanが切れてないのでコマンドは実行されない
lifespan=3, autorefresh=5の場合
lifespan |--|--|--|--|--| autorefresh |----|----|----| o o o o
どのrefresh時点でもlifespanが切れてるのでコマンドが実行される
こんなこと考えるのは面倒くさいので,更新したい秒数があるならlifespan, autorefreshの両方にそれを設定しておけばいい.