User Tools

Site Tools


problema_con_comandos_largos_en_consola

Problemas con el ajuste de visualización de comandos largos en la terminal

En algunos casos, normalmente al haber redimensionado la ventana de la terminal o modificado el prompt PS1, pueden aparecer problemas al escribir comandos de una determinada longitud en consola. El comando escrito en vez de pasar al renglón de abajo cuando se llega al final de la terminal, se mantiene en su sitio reemplazando el texto actualmente escrito. En otros casos se sube una linea hacia arriba por cada letra escrita en la consola.

El problema de que las lineas no se ajusten a la ventana de la consola, puede recaer en la propia configuración del prompt, este debe tener todos los caracteres no imprimibles dentro de “\[ \]”. Si se usan comillas dobles para definir el prompt se debe usar la doble barra “\\”.

Leer: http://mywiki.wooledge.org/BashFAQ/053

Ejemplo de prompt PS1 para agregar a .bashrc (Cambia de color dependiendo del usuario).

if (( $UID == 0 )); then
    PS1="\\[\033[01;31m\]\u\[\033[00m\]:\[\033[36m\]\w \[\033[00m\]\$ "
else
    PS1="\\[\033[01;32m\]\u\[\033[00m\]:\[\033[36m\]\w \[\033[00m\]\$ "
fi

Si el prompt lo tenemos perfectamente configurado y seguimos teniendo problemas, lo que está pasando es que no se está actualizando la variable $COLUMNS y $LINES después de redimensionar la terminal.

Para solucionar el problema se debe consultar si se tiene activo “checkwinsize”

shopt | grep checkwinsize
off

Para activar / desactivar checkwinsize.

shopt -s checkwinsize # Activa
shopt -u checkwinsize # Desactiva

Si se quiere tener en todas las terminales siempre activado se puede incluir en ~/.bashrc.

checkwinsize

    If set, Bash checks the window size after each command and, if necessary, updates the values of LINES and COLUMNS.
problema_con_comandos_largos_en_consola.txt · Last modified: 2020/12/25 22:57 by 127.0.0.1