He configurado un elegante PS1
indicador de bash de dos líneas , con el nombre del servidor, la hora, el nombre de usuario y otras variables útiles.
PS1="\n\[\033[1;34m\]\342\226\210\342\226\210 \u @ $SERVER_NAME""$BBlue"" \w""$Color_Off \n\[\033[0;36m\]\342\226\210\342\226\210 \d \t $ \[\033[0;39m\]"
Fuente completa de Github aquí .
El problema es que las líneas largas a menudo se envuelven alrededor de sí mismas, lo que significa que la nueva línea se superpone a la anterior.
El problema es inconsistente: algunas líneas están ajustadas correctamente, otras no.
¿Algúna idea de cómo arreglar esto?
Encontré esta solución en línea, lo que sugiere un cierre de corchetes a las variables de color:
Cambia esto:
a:
He comprometido el cambio , espero que funcione como se esperaba.
fuente
\[
\]
, por lo que no puede simplemente terminar con todos los colores de ansi-escape\]
porque ¿qué pasa si no hay un\[
? Cuando coloca caracteres no imprimibles, debe envolverlos\[
\]
(pPS1='\[\e[32;1m\] green prompt \[\e[0m\] $'
. Ej .).Mi solución preferida para el problema de la superposición de líneas largas en bash PS1 es tener un
\n
al final de las líneas de solicitud de PS1.p.ej
Si desea todas mis otras cosas: tiempo, usuario, host, directorio y git branch (!) Puede usar esto (mac o linux):
/unix//a/124012/10043
fuente
if [[ $(git rev-parse --is-inside-git-dir 2> /dev/null) ]]; then branch="$( git symbolic-ref --short -q HEAD 2> /dev/null )"; fi
. Este es un estándar al colocar git en un script y evaluar el nombre de la rama de lo que he leído anteriormente.