У меня есть встроенная система Linux с BusyBox.BusyBox поставляется с ash в качестве оболочки по умолчанию, но мне нужны дополнительные функции, поэтому я хочу установить bash.
Я установил bash и запустил его в системе, но моя проблема в том, что всякий раз, когда я пишу длинную команду и оболочка должна идти по строке, вместо этого она возвращается к началу текущей строкии бежит по началу команды.
например: я пишу:
aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbb
Я получаю:
bbbbbbbbaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbb
Вместо:
aaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbb
bbbbbbbb
Замечу, чтоКоманда все еще работает.Это означает, что разрушен только дисплей.Оболочка по умолчанию (ash) знает, как справиться с этой ситуацией.
Я посмотрел на проблему и изучил двоичный файл, который оболочка создает в последовательном порту, когда он достигает конца строки, и это делаеттолько отправить \ r и нет \ n (пепел отправляет \ r \ r \ n, и поэтому он работает хорошо).
Если я подключаюсь к устройству из Ubuntu через ssh и использую оболочку bash, это работает хорошо.Я предполагаю, что это потому, что терминал Ubuntu заботится о порядке строк.
Дополнительные вещи, которые я протестировал:
Я видел много сообщений, в которых говорится, что подобные вещи могут происходить из-за моей переменной PS1.Я попытался изменить его и даже просто вставить один символ ($) без специальных или непечатных символов, и проблема не устранена.
Я попытался настроить системную переменную $ TERM, которая используется bash (по умолчанию vt102, и я изменил ее на xterm), это не имело никакого значения.
Я попытался возиться с системной переменной $ COLUMNS и изменить ее значение, и bash реагирует на это изменение.Единственная проблема заключается в том, что когда он распознает, ему нужно перейти на следующую строку, он производит \ r вместо \ n.
Есть ли способ решить эту проблему?Может быть, какая-нибудь системная переменная, которая сообщает bash, какую строку писать при переходе на следующую строку?Или, может быть, флаг, который я могу изменить при компиляции bash?
Спасибо.