Me gustaría dividir mi indicador de bash en dos líneas si la ruta es "demasiado larga", para que el comando ingresado siempre encaje.
Mi mensaje actual se ve así: ~/go/src/asd$ ls -lah
, por lo que si la ruta es demasiado larga, los comandos deben ajustarse en línea todo el tiempo. Por lo tanto, me gustaría convertirlo condicionalmente en un mensaje de dos líneas, si la ruta es demasiado larga. ¿Cómo puedo hacer esto?
Respuesta1
Agregue al final de su ~/.bashrc
archivo:
path_len() {
max_path=20
currentPath=$(pwd)
pathLen=${#currentPath}
[ ${pathLen} -gt ${max_path} ] && printf "\n:"
}
PS1="\n\[\033[1;31m\]\u@\h: \[\033[32m\]\w\$(path_len)\[\033[0m\] -> "
y ajusta la variable max_path
en función path_len
a ese valor mágico que llamaste "demasiado largo";)