这是我当前的 .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}]'
Run Code Online (Sandbox Code Playgroud)
我现在希望会话名称也出现在其中,我已经确定的一个来自这个答案 - 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:]]*"'
Run Code Online (Sandbox Code Playgroud)
这是一个我不熟悉的领域,我想知道backtick
命令如何适应它,即它到底是不是一个screen
命令。
你可以检查这个或者更好的你可以检查man
页面,screen
这是一个很好的参考,并说:
反引号ID 寿命自动刷新 cmd 参数...
反引号ID使用数字 id id 编写反引号命令。此类命令的输出用于替换“%`”字符串转义符。指定的
lifespan
是输出被视为有效的秒数。在此之后,如果遇到相应的字符串转义,该命令将再次运行。该autorefresh
参数在指定的秒数后触发标题和硬状态字符串的自动刷新。只有最后一行输出用于替换。
如果这两个lifespan
和autorefresh
参数为零,反引号程序应留在后台并偶尔生成输出。在这种情况下,命令会立即执行,并且屏幕会存储最后一行输出。如果打印出新行,屏幕将自动刷新硬状态或标题。命令的第二种形式删除带有数字 id id 的反引号命令。
根据您的示例,您可以添加:
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
Run Code Online (Sandbox Code Playgroud)