7 votes

pourquoi l'écran n'affiche pas le nom du processus en cours d'exécution ? (Mac OSX Terminal bash)

J'exécute l'écran dans l'application Terminal de Mac OSX (bash).

Voici le screenrc (obtenu à partir de aquí ):

$ cat ~/.screenrc 
termcapinfo xterm* ti@:te@
startup_message off
defutf8 on
shelltitle "$ |what?" # make screen assign window titles automatically
hardstatus alwayslastline
hardstatus string '%{= kw} [ %{= kb}%H%{= kw} ][%= %{= kw}%?%-Lw?%{= kW}%n*%f %t%?%?%{= kw}%?%+Lw%?%?%= ][ %{r}%l%{w} ]%{w}[%{r} %m/%d/%y/ %C %A %{w}]%{w}'
$

Comme vous pouvez le constater, je dispose de la ligne permettant d'afficher le nom du processus en cours comme titre à l'écran :

shelltitle "$ |what?" # make screen assign window titles automatically

Mais à l'intérieur de l'écran, je vois juste "quoi ?" (le défaut) au lieu du nom du processus. Ce qui suggère que le "$" ne fonctionne pas.

Qu'est-ce que je rate ? Et comment fonctionne le "$ |quelque chose-else" ?

5voto

ars Points 521

Quelle est la valeur de votre invite bash (c'est-à-dire la variable PS1) ?

Essayez ce qui suit dans votre .bashrc o .profile :

export PS1='\[\033k\033\\\]\u@\h:\w\$ '

et dans votre .screenrc :

shelltitle "$ |bash:"

C'est ce que j'ai et cela fonctionne. Fondamentalement, screen a besoin d'une chaîne magique pour savoir comment se termine votre invite afin qu'il puisse prendre la commande en cours d'exécution. Vous pouvez la modifier, mais consultez l'explication sur cette page pour plus d'informations sur son fonctionnement :

0 votes

Désolé pour la réponse tardive - j'étais absent sans permission. J'ai lu et compris que screen a besoin d'une chaîne magique (sauf dans zsh etc.). Cependant, cette solution ne fonctionne toujours pas. Voici ce que j'ai : $ grep PS1 .bashrc export PS1='\[ \033k\033\\\ ] \u @ \h : \w\ $ ' $ grep bash .screenrc shelltitle "$ |bash :" Maintenant tout ce que je vois est "bash :" :)

0 votes

Vous êtes censé voir "bash" lorsque vous êtes à l'invite, car c'est la seule chose qui tourne. Si vous exécutez "sleep 600", il devrait se transformer en "sleep" pendant l'exécution, en fonction du mot que vous avez tapé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X