Term Environment Variável não definida, ao executar um Bash File via SSH

2

Estou tentando executar um script bash em uma máquina remota. Se eu abrir uma conexão ssh em um terminal, posso facilmente executar o script. Mas quando eu corro assim:

ssh user@ip < /etc/script

Eu recebo um erro:

TERM enviroment variable not set.

O que estou fazendo de errado aqui?

    
por Simons0n 29.10.2012 / 16:13

3 respostas

4

Usar a opção -t do ssh pode resolver seu problema, já que ele conecta um tty e define uma variável de ambiente TERM apropriada.

ssh -t host < script

    
por 04.11.2012 / 12:23
0

Quando você redireciona a entrada, o cliente ssh provavelmente percebe que a entrada não está conectada a um TTY e decide que o TERM é inadequado.

    
por 29.10.2012 / 16:48
0

Experimente colocar essas linhas em ~user/.bashrc no host de destino:

if [ ! ${#TERM} > 0 ]
then
    export TERM=<value>
fi

$ {# var } retorna o tamanho da string da variável var . Portanto, se o comprimento de TERM for NULL (não definido) ou 0, você poderá definir manualmente seu valor TERM .

Você também pode pensar em testar se $SSH_CLIENT ou $SSH_CONNECTION são diferentes de zero e testando apenas um valor TERM sob essas condições.

Finalmente, isso precisa ir em .bashrc porque .bash_login só é executado em shells de login.

    
por 29.10.2012 / 17:09