Изменяя определение моего PS1, я увидел, что необходимо добавить маркеры «\[» и «\]», чтобы помочь bash вычислить правильную длину дисплея. Многие примеры в Интернете не используют их и даже не упоминают о них.

Я искал решение для их автоматического добавления, как в случае с sed, но я не нашел ни одного примера.

Они все еще нужны, и есть ли рекомендация не использовать sed для определения PS1?

Это то, что я использую в данный момент:

PS1="$(echo -n "$PS_" | sed -e 's/\\e\[/\\\[\\e\[/g' -e 's/[0-9]m/&\\\]/g')"

1 ответ1

0

Да, \[ и \] все еще необходимы, иначе вы столкнетесь с неприятными сбоями, когда команда шире, чем окно вашего терминала.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .