Utilizo diferentes sesiones de pantalla para diferentes proyectos. Pantalla de inicio como screen -S project1
. Ahora, me gustaría mencionar 'project1' en la línea hardstatus.
Nombre de la sesión se puede obtener a partir de la variable de entorno STY: STY=13539.project1
.
¿Pero cómo llevar esto a la pantalla? He intentado el comando de retroceso y% `en estado duro, pero parece que no puedo hacerlo bien.
Lo que hice:
.screenrc:
hardstatus string '%H:%`'
backtick 0 30 30 echo $STY
sin suerte, vacio% `.
backtick 0 30 30 sessionname
sigue sin suerte, nombre de sesión: no encontrado
fuente
backtick
: (1.) ¿esbacktick
un bash incorporado? un comando gnu-screen? un ejecutable binario? ¿hay una página de manual? (2.) Sé que funciona porque lo probé, pero ¿cómo se ejecuta un comando de dos líneas cuando parece que la.screenrc
sintaxis de gnu-screen requiere una línea para elhardstatus
comando? (3.) ¿cómo modificaría su comando para permitir agregar texto después del nombre de la sesión?backtick
es unscreen
comando. Búscalo en la página del manual parascreen
. Puede ser mejor si publica una nueva pregunta sobre el resto de lo que está preguntando. No creo que la salida de estado duro pueda ocupar dos líneas en la pantalla. Podría usarsed
o enawk
lugar degrep
hacer lo quegrep
está haciendo en mi ejemplo y también agregar texto adicional.%`
y elbacktick
ser en líneas separadas ... no parecían relacionados, pero ahora que leí la documentaciónbacktick
, veo que los dos están relacionados / necesarios / sintaxis válida (aunque la sintaxis es bastante extraña IMO).Para mí, esto funciona fácilmente con la inserción
%S
en el estado duro.MWE (.screenrc):
Sin embargo, esto muestra el nombre de la sesión sin la ID (como
${STY#*.}
); en su ejemplo:project1
.(La misma respuesta a otras preguntas aquí y aquí para completar).
fuente