Prompt bash multilinha se o caminho tiver mais de x caracteres?

Prompt bash multilinha se o caminho tiver mais de x caracteres?

Gostaria de dividir meu prompt do bash em duas linhas se o caminho for "muito longo", para que o comando inserido sempre caiba.

Meu prompt atual se parece com: ~/go/src/asd$ ls -lah, portanto, se o caminho for muito longo, os comandos terão que quebrar a linha o tempo todo. Portanto, gostaria de torná-lo condicionalmente um prompt de duas linhas, se o caminho for muito longo. Como posso fazer isso?

Responder1

Adicione ao final do seu ~/.bashrcarquivo:

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\] -> "

e ajuste a variável max_pathem função path_lenpara aquele valor mágico que você chamou de "muito longo";)

informação relacionada