
以下は、コードのリンクからほとんどコピーされた現在の.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を持つバックティックコマンドを削除します。lifespan
autorefresh
あなたの例に基づいて、以下を追加できます。
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