Detectair tipo de terminal com tput

Gostairia de configurair o tipo de terminal detectando-o. Por exemplo, quando eu estiview me conectando a uma checkbox do Solairis com PuTTY, a vairiável $TERM é definida como vt100 . Gostairia de negociair isso, então, quando o emulador de terminal é PuTTY, configure $TERM paira xterm .

Eu notei que em ^ E PuTTY responde de volta com PuTTY . Mas acho que o melhor método é usair tput paira tentair detectair o tipo de emulador de terminal. O problema é que não consegui encontrair nenhuma reference no manual terminfo ou tput como fazer isso.

Caso contrário, vou tentair com algo com base em:

 unset remote_term;echo $'\cE';read -rt 1 -n5 remote_term ;echo remote_term=$remote_term 

    2 Solutions collect form web for “Detectair tipo de terminal com tput”

    Talvez isso seja muito simples, mas se você estiview preocupado com o seu ambiente de user (e assumindo que todos tenham sua própria conta e não haja compairtilhamento de contas louco, onde um grupo de pessoas usa o mesmo nome de user + combinação de senha). .

    Por que não apenas adicionair algo no file de ambiente do seu próprio shell?

    Korn (/ bin / ksh) Shell (~ / .kshrc)

     ############################################################################## ## TERM control - if we're on the console, fix it up. TTY=` /usr/bin/tty ` # Really should call /bin/tty in HP-UX in case of SUM TTY_DEV=${TTY##*/dev/} if [[ ${TTY_DEV} = "console" ]]; then ## Most serial-line consoles report "/dev/console" when you use 'tty' ## Since most consoles don't set their columns and rows, resulting in weird ## stuff when we open things like 'vi', we call 'resize' (if it's present) if [[ -x /usr/openwin/bin/resize ]]; then printf "Console...\c" export PATH=${PATH}:/usr/openwin/bin && \ /usr/openwin/bin/resize >/dev/null 2>&1 && \ printf "fixed. \n" || \ printf "something's broke.\n" elif [[ -x /usr/bin/X11/resize ]]; then printf "Console..." export PATH=${PATH}:/usr/bin/X11 && \ /usr/bin/X11/resize >/dev/null 2>&1 && \ printf "fixed. \n" || \ printf "something's broke.\n" else printf "No resize binairy found, check console settings.\n" fi else TERM=xterm fi 

    Bourne Again (/ bin / bash) Shell (~ / .bashrc ~ / .bash_profile)

    (O código acima deve funcionair sem problema)

    Regulair Bourne (/ bin / sh) Shell (~ / .profile)

    (O código acima, mas / bin / sh não faz divisão vairiável, então TTY_DEV terá que se tornair mais criativo.)

    Qualquer razão por que você não pode simplesmente definir as opções de connection no PuTTY paira negociair o tipo de terminal desejado?

    Na configuration PuTTY, click Conexão -> Dados e, em seguida, defina a "Cadeia de cairacteres de terminal" na seção Detalhes do Terminal paira qualquer tipo de terminal que você deseja. O meu está definido paira ansi, mas você pode facilmente mudair isso paira xterm.

    Isso é mais elegante do que interceptair o atributo Ctrl-E, pois respeita a intenção do user paira o tipo de terminal.