Это довольно сложная проблема для объяснения, поскольку при подключении к одному из моих серверов с использованием оболочки bash под любым пользователем перенос строк нарушается и имеет всевозможные проблемы. Один из которых я подробно описываю на скриншотах ниже:
Другие проблемы, с которыми я сталкиваюсь, включают в себя, что nano очень запутался в том, на какой строке или букве я нахожусь, как показано при вводе того же сообщения в nano:
Эти проблемы возникают только при подключении, как я уже упоминал ранее, к одному из моих серверов, на котором работает CentOs. Вы знаете, почему это происходит и что я могу сделать, чтобы это исправить? На других серверах сообщение работает нормально!
Спасибо за ваше время,
Вывод запрошенных команд:
Сервер, который не работает должным образом:
Рабочий сервер:
Может быть, это пользовательское приглашение на неработающем сервере? В .bashrc
PS1='\e[1;32m\u@\h\e[m:\e[1;34m\w\e[m$ '
Комментирование этого, похоже, решило проблему.
Google говорит, что ошибки переноса строк могут возникнуть, если вы не соблюдаете эти правила
use the \[ escape to begin a sequence of non-printing characters,
and the \] escape to signal the end of such a sequence
Я не уверен, что это вписывается в мою подсказку?
Пользовательское приглашение - это проблема (из ваших комментариев).
PS1='\e[1;32m\u@\h\e[m:\e[1;34m\w\e[m$ '
Это либо отправка управляющей последовательности, которую ваш терминал не понимает, либо она неправильно сформирована.
Вы можете попробовать это,
PS1='\[\e[1;32m\]\u@\h\[\e[m\]:\[\e[1;34m\]\w\[\e[m\]$ '
Я столкнулся с той же проблемой. Я вошел в «Настройки» терминала в Lion (последняя версия OSX 10.7.3), а затем в:
Настройки -> Дополнительно -> «Объявить терминал как»
И выбрал «xterm» вместо оригинального V100.
Задача решена.
(Это потому, что мне нравятся мои пользовательские подсказки и т. Д.)
Это почти наверняка разница во мнениях между вашим эмулятором терминала и работающей системой относительно возможностей терминала. Если, как вы говорите, это происходит только на определенных машинах (или только через SSH), сравните значение TERM
переменная среды между рабочей и нерабочей системами и попытаться установить TERM
надлежащим образом в системе, которая не работает.
Это может не сработать, в зависимости от возраста terminfo
база данных находится в системе, которая не работает; возможно, вам потребуется обновить эту систему или, по крайней мере, найти другую TERM
значение, которое работает для вас и о котором знает удаленная система.