是否可以让 GNU Screen 显示任意命令的输出,例如 who | wc -l
,在状态栏中,每分钟刷新一次?
答案1
是的,您可以使用反引号功能。 反引号
你在 screenrc 文件中添加一行:
backtick 1 0 5 /bin/date
如果我理解正确的话,它的意思是反引号 id 1,它运行命令/bin/date
,产生有效期为 0 秒的输出,并且标题/硬状态应每 5 秒更新一次。
%1`
现在,您可以使用硬状态中的字符串进行替换,例如
hardstatus alwayslastline "date output: %1`"
对于你的情况,我认为你必须编写一个脚本。例如$HOME/my_script.sh
:
#!/bin/bash
who | wc -l
在你的~/.screenrc
:
backtick 1 0 60 $HOME/my_script.sh
hardstatus alwayslastline "who|wc -l output: %1`"
显然,您不会想要完全这样,而只是添加%1`
到您已有的任何其他内容中。请注意,您的脚本输出不能包含用于屏幕扩展的字符串转义符,例如,如果您的脚本是,echo "%{bg}blue on green%{dd}"
它将不会被着色,您只会在状态行中看到${bg}
和。${dd}