Многострочная командная строка bash, если путь длиннее x символов?

Многострочная командная строка bash, если путь длиннее x символов?

Я хотел бы разделить приглашение bash на две строки, если путь «слишком длинный», чтобы введенная команда всегда помещалась.

Мой текущий запрос выглядит так: ~/go/src/asd$ ls -lah, поэтому если путь слишком длинный, команды должны все время переносить строки. Таким образом, я хотел бы условно сделать его двухстрочным запросом, если путь слишком длинный. Как это сделать?

решение1

Добавьте в конец вашего ~/.bashrcфайла:

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

и настройте переменную max_pathв функции path_lenна то магическое значение, которое вы назвали «слишком длинным» ;)

Связанный контент