Намерение состоит в том, чтобы поместить курсор в какую-то позицию на экране (вокруг центра экрана), ввести некоторый исходный текст и предложить пользователю ввести больше текста для сохранения в переменной, оставляя его нормальным. readline
возможности редактирования строки.
Моя первоначальная попытка заключалась в следующем:
- центрировать курсор по вертикали
echo
/ printf
с использованием некоторого пробела, - по центрукурсор снова по горизонтали через
echo
/ printf
, - выпуск
read -i "editable pre-text" -e answer
.
Однако я заметил поведение, описанное ниже, и создал следующий пример двух строк кодачтобы продемонстрировать это.
При выполнении следующего сценария
echo -n "______________"
read -e risp
, пока не введен ввод, Backspace неэффективен (и это своего рода поведение, которое янапример, символы, введенные с echo
до read
, не могут быть удалены во время read
).
Однако, набрав что-то (например, некоторый текст), а затем удалив его (полностью, вплоть допервый напечатанный character) с Backspace , курсор переместится на первое двоеточие терминала, как только Backspace удалит первый набранный символ.
Другими словами, при запуске сценария Backspace ничего не делает, в то время как X Backspace приведет к тому, что курсор перейдет к первомустолбец терминала.
В чем причина этого беваиора и как я могу его избежать?
Учитывая название этот вопрос Я ожидал бы, что он будетсвязано с настоящим, но я не могу понять, действительно ли это так.