Форматирование моего $ PS1 в x количество символов

303
cmwright

Я ищу способ заставить мою переменную PS1 определенному числу символов.
В настоящее время это выглядит так:

$PS1="\W $"

и я пытаюсь сохранить одинаковое количество символов независимо от длины текущего имени папки.

Например, и Документы, и bin будут отображаться в виде 10-символьных строк, при этом левая сторона моего терминала будет всегда одинаковой ширины.

1
Как вы собираетесь отформатировать это? Что-то вроде "LongFileName" -> "LongFileNa"? Кстати, awk может сделать это: `echo 12345 | awk '' `. Как запихнуть это в $ PS1, понятия не имею. new123456 13 лет назад 0
@ new123456 это как раз моя проблема. Я могу сделать то, что вы говорите, но если вы используете $ pwd, вы получите только свой первоначальный каталог входа в систему, он не будет обновляться при смене каталогов cmwright 13 лет назад 0
`bash` имеет переменную` PROMPT_COMMAND`, но у него нет той же семантики, что и у `PS1` (в частности, escape-символы). `zsh` может сделать это с` PROMPT` (он оценивается при каждом запуске). new123456 13 лет назад 0

1 ответ на вопрос

0
Iain

Если вы используете xterm или аналогичный, то вы можете поместить текущий каталог в строку заголовка, а затем иметь фиксированное приглашение

PS1='\[\e]0;\h \w\007\] \u$ ' 

поместит текущее имя хоста и каталог в строку заголовка и сделает запрос, username$напримерiain$

Существует более подробную информацию здесь .

Похожие вопросы