Pregunta

Estoy utilizado de Linux para tener un mensaje de color en mis conchas y también quiero implementarlo en mi terminal OS X.App. Sin embargo, el terminal reacciona de manera diferente. Si uso mi código PS1 normal, el lado derecho de cualquier línea se cortará en un punto extraño (seguramente no el extremo derecho de la ventana del terminal). Y también la siguiente línea no se mostrará en la siguiente línea sino en la misma línea.

Reacción esperada:

erik2:~[06:46 am]$ expectedexpectedexpectedexpectedexpectedexpectedexpect
edexpected_

Reacción real:

ectedexpected_am]$ expectedexpectedexpectedexpectedexp

¿Es eso normal para el terminal? ¿Hay una alternativa? ¿Acabo de codificar algo mal? Eche un vistazo a mi código PS1:

export PS1="\033[0;34m\u:\W\e[0;32m[\@]\e[m\033[0;34m$\033[m "
¿Fue útil?

Solución

Debe escapar de las partes no imprimentes del aviso rodeándolas con \[…\].

export PS1="\[\033[0;34m\]\u:\W\[\e[0;32m\][\@]\[\e[m\033[0;34m$\033[m\] "

De lo contrario, Readline se confunde sobre el espacio restante en la línea de comando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a apple.stackexchange
scroll top