¿Pregunta de bash de varias líneas si la ruta tiene más de x caracteres?

¿Pregunta de bash de varias líneas si la ruta tiene más de x caracteres?

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 ~/.bashrcarchivo:

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_pathen función path_lena ese valor mágico que llamaste "demasiado largo";)

información relacionada