linux + tput: Nenhum valor para $ TERM e nenhum -T especificado

0

Eu uso no meu script bash o comando tput para colorir o texto

como

tput setaf 2

quando executo o script a partir do putty ou do console, tudo fica bem

mas quando eu executo algum mecanismo de aplicativo WIN externo que executa o script via SSH o nós obtemos o seguinte erro no tput

tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified
tput: No value for $TERM and no -T specified

por favor, avise o que precisa definir (ENV ou mais) no meu script bash para usar o comando tput?

    
por yael 10.01.2018 / 11:55

1 resposta

0

Ao conectar via ssh , as variáveis de ambiente podem (ou não) ser passadas para o aplicativo remoto. Também um "motor de aplicação WIN" poderia muito bem não definir TERM .

Se TERM for putty (ou xterm , nesse caso), isso terá o mesmo efeito:

tput setaf 2
tput -T putty setaf 2

desde que as seqüências de controle usadas para setaf são as mesmas. Da mesma forma, se TERM for linux , estes são os mesmos

tput setaf 2
tput -T linux setaf 2

O setaf é usado para definir o primeiro plano (texto) para um valor específico usando seqüências de escape ANSI (x3.64). A maioria dos terminais que você está usando faz isso - ou alguns não reconhecem nenhuma dessas seqüências de escape. Como o aplicativo não foi mencionado, você terá que experimentar para ver se o "mecanismo de aplicativo WIN" reconhece essas seqüências de escape. Em caso afirmativo, provavelmente usa as mesmas saídas ANSI , então você poderia fazer

tput -T xterm setaf 2

(Existem outras diferenças entre putty, linux e xterm, claro).

    
por 11.02.2018 / 00:47