在hardstatus中显示的screenrc中动态生成的日志文件


8

我想使用启动时的日期和时间的组合作为GNU屏幕的日志文件的文件名。在screenrc中,如果我把

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

我得到一个动态生成的文件,例如

screen_nanna13_06062012_08:03-bash.0

现在,我希望屏幕在hardstatus栏中显示此文件名。我不能使用

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

因为只要时间改变,占位符都会更新。

我可以想出的解决方案包括在屏幕启动之前执行bash代码,但这不好,因为应该将单独的屏幕窗口获取自己的动态日志文件。

屏幕中是否存在变量替换机制?

Answers:


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`变量中。唯一的问题是,如果以后在会话中创建一个新窗口,则日期不会更改日志文件的名称(但对我来说,这甚至是一项功能,因为它可以更好地标识适当的日志文件)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.