Como determinar se o cliente em uma conexão ssh está usando a tela

1

Eu tenho uma situação estranha. Eu quero detectar no final remoto de um ssh conexão se o cliente estiver executando o terminal dentro de uma tela sessão. Eu quero definir o meu prompt com base nisso. Até agora eu tentei usando remotehost:~/.ssh/env [1] e a opção SendEnv no meu localhost:~/.ssh/config para enviar minha variável $STY [2]; mas ambos têm falhou.

Então, eu queria saber se existe alguma outra maneira de conseguir isso?

Notas de rodapé:

[1] Isso não funciona, pois não avalia nada, não consigo definir     as coisas dinamicamente.

[2] Isso requer que AcceptEnv seja permitido no terminal remoto. Isso não é     possível porque eu não sou o administrador no remotehost e mesmo se eu     foram, o man sshd_config desaconselha.

    
por suvayu 04.12.2011 / 01:10

1 resposta

0

Tente isto:

if [ "${TERM}" == "screen" ]
then
    # Set prompt to something special for screen.
fi

Esta é a citação relevante da página de manual da tela :

   term term

   In  each  window's  environment  screen opens, the $TERM variable is set to "screen" by default.  But when no description for "screen" is installed in the
   local termcap or terminfo data base, you set $TERM to - say - "vt100". This won't do much harm, as screen is VT100/ANSI compatible.  The use of the "term"
   command is discouraged for non-default purpose.  That is, one may want to specify special $TERM settings (e.g. vt100) for the next "screen rlogin otherma-
   chine" command. Use the command "screen -T vt100 rlogin othermachine" rather than setting and resetting the default.
    
por 23.12.2011 / 00:53