画面ステータス表示にセッション名を追加するには?

画面ステータス表示にセッション名を追加するには?

以下は、コードのリンクからほとんどコピーされた現在の.screenrcファイルです。

#First iteration 2014-09-06, not quite sure of stuff to add
# got a fancy hardstatus line noted below
hardstatus on
hardstatus alwayslastline
# hardstatus string "%w"

# blagged this hardstatus like from https://bbs.archlinux.org/viewtopic.php?id=55618, not quite sure what it does
hardstatus string '%{= kG}%{C}Screen: %{c}%{= kG}[%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{C} %d-%m %{W}%c %{g}]'

さて、セッション名もここに表示したいと思います。私が識別した名前はこの答えから来ました。https://superuser.com/questions/212392/how-to-include-screens-session-name-in-hardstatus/212520#212520

ソリューションは次のアイデアに従います。

hardstatus string '%H:%`'
backtick 0 30 30 sh -c 'screen -ls | grep --color=no -o "$PPID[^[:space:]]*"'

backtickこれは私にとって不慣れな領域であり、このコマンドがここにどのように適用されるか、つまりコマンドであるかをscreen知りたいです。

ベストアンサー1

確認できますこれmanまたは、どのページがscreen良い参照であるかを確認し、次のように言うこともできます。

バックティックIDライフサイクルは自動的にcmdパラメータを更新します。
バックティックID

数値IDを使用してバックティックコマンドを作成します。これらのコマンドの出力は、文字列「%`」のエスケープ文字を置き換えるために使用されます。lifespan出力が有効であると見なされる秒数が指定されます。この時間後に対応する文字列エスケープが発生すると、コマンドは再び実行されます。このautorefreshパラメータは、指定された時間(秒)後にタイトルとハードステータス文字列の自動更新をトリガします。出力の最後の行だけが置換に使用されます。引数がすべて0
の場合、バックティックプログラムはバックグラウンドにとどまり、時々出力を生成すると予想されます。この場合、コマンドは直ちに実行され、出力の最後の行が画面に保存されます。新しい行が印刷されると、画面は自動的にハード状態またはタイトルを更新します。このコマンドの2番目の形式は、数値IDを持つバックティックコマンドを削除します。lifespanautorefresh

あなたの例に基づいて、以下を追加できます。

hardstatus string '%H:%1` | %2`'
backtick 1 30 30 sh -c 'screen -ls | grep --color=no -o "$PPID[^[:space:]]*"'
backtick 2 60 60 /usr/bin/uptime

おすすめ記事