J'utilise différentes sessions d'écran pour différents projets. Écran de démarrage comme screen -S project1
. Maintenant, je voudrais mentionner «project1» dans la ligne hardstatus.
Nom de la session peut être obtenu à partir STY variable d'environnement: STY=13539.project1
.
Mais comment mettre cela à l'écran? J'ai essayé la commande backtick et% `dans hardstatus, mais je n'arrive pas à faire les choses correctement.
Ce que j'ai fait:
.screenrc:
hardstatus string '%H:%`'
backtick 0 30 30 echo $STY
pas de chance, vide% `.
backtick 0 30 30 sessionname
toujours pas de chance, nom de session: introuvable
la source
backtick
: (1.)backtick
un bash est-il intégré? une commande gnu-screen? un exécutable binaire? existe-t-il une page de manuel? (2.) Je sais que cela fonctionne parce que je l'ai essayé, mais comment exécuter une commande sur deux lignes alors qu'il semble que la.screenrc
syntaxe gnu-screen nécessite une ligne pour lahardstatus
commande? (3.) comment pourrais-je modifier votre commande pour permettre d'ajouter du texte après le nom de la session?backtick
est unescreen
commande. Recherchez-le dans la page de manuel descreen
. Il serait préférable de publier une nouvelle question concernant le reste de ce que vous demandez. Je ne pense pas que la sortie hardstatus puisse occuper deux lignes à l'écran. Vous pouvez utilisersed
ouawk
au lieu degrep
faire ce quigrep
est en train de faire dans mon exemple et également ajouter du texte supplémentaire.%`
et l'backtick
être sur des lignes distinctes ... ils n'avaient pas l'air liés mais maintenant que j'ai lu la documentation carbacktick
je vois que les deux sont liés / nécessaires / syntaxe valide (bien que la syntaxe soit assez étrange IMO).Pour moi, cela fonctionne facilement avec l'insertion
%S
dans le hardstatus.MWE (.screenrc):
Cependant, cela affiche le nom de la session sans l'ID (comme
${STY#*.}
); dans votre exemple:project1
.(Même réponse à d'autres questions ici et ici pour être complet).
la source