1

Я использую gnome-terminal с bash, и когда у меня есть команда, которая должна перейти через строку, она просто остается на той же строке. Так что вместо:

echo "abcdefghijklmnopqrstuvwxyz"

я бы получил

opqrstuvwxyz""abcdefghijklmn

Или что-то похожее на это. Однако, если я нажму Enter, команда все равно будет работать. Я считаю, что это как-то связано с моей переменной PS1, но я не знаю, что с ней не так. Вот:

export PS1='\e[1;35m[\u:\w]\$\e[0;35m '

1 ответ1

4

Это кажется несколько связанным:

Оборачивание вывода tput в \[ \] рекомендуется на справочной странице Bash. Это помогает Bash игнорировать непечатаемые символы, чтобы он правильно вычислял размер приглашения.

Источник

«Вывод tput » в вашем случае выглядит следующим образом: \e[1;35m или \e[0;35m (есть два отдельных фрагмента для переноса).

Я модифицировал ваш PS1:

export PS1='\[\e[1;35m\][\u:\w]\$\[\e[0;35m\] '

и это, кажется, работает для меня без проблемы.

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