\W
и \$
не должны go внутри \[...\]
, поскольку bash
будет знать, сколько места каждый занимает на терминале.
PS1="\[\e[38;5;117m<b>\]</b>\W <b>\[</b>\e[39;38;5;104m<b>\]</b>\$<b>\[</b>\e[39;0m\] "
Только символы, составляющие escape-последовательность ANSI (которые только инструктируют терминал изменять цвета, не отображая ни одного дополнительного символа), заключены в \[...\]
.
Помещение их внутрь \[...\]
говорит bash
игнорировать их вклад в длину приглашения, что приводит к неправильному redr aws.