archivo de registro generado dinámicamente en screenrc mostrado en hardstatus

8

Quiero usar una combinación de la fecha y la hora al inicio como nombre de archivo para el archivo de registro de la pantalla GNU. En screenrc, si pongo

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

Me sale un archivo generado dinámicamente, por ejemplo

screen_nanna13_06062012_08:03-bash.0

Ahora quiero que la pantalla muestre este nombre de archivo en la barra de estado duro. No puedo usar

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

porque los marcadores de posición se actualizan cada vez que cambia la hora.

Las soluciones que se me ocurren implican un código bash ejecutado antes del inicio de la pantalla, pero eso no es bueno porque se supone que las ventanas de pantalla separadas deben tener su propio archivo de registro dinámico.

¿Existe un mecanismo de sustitución de variables en la pantalla?

thias
fuente

Respuestas:

1

Encontré una solución usando el backtickcomando de pantalla :

backtick 1 0 0 date +%d%b%Y_%k:%M
logfile '~/log/%H_%1`-%t.%n'
hardstatus string '~/log/%H_%1`-%t.%n'

utiliza el comando de fecha UNIX para cargar la fecha / hora actual en la variable% 1`. El único problema es que la fecha no cambia en el nombre del archivo de registro en caso de que se cree una nueva ventana más adelante durante la sesión (pero para mí, eso es incluso una característica porque permite una mejor identificación del archivo de registro apropiado).

thias
fuente