Почему "^?"появляется при использовании команды чтения с аргументом -n? - PullRequest
0 голосов
/ 29 мая 2018

Это небольшой сценарий оболочки, который я написал:

#!/bin/bash

echo "Tell me something"
read -n 1000 text

Но когда используется аргумент -n, я не могу стереть свои опечатки, так как использование возврата на одну позицию приводит к вставке "^?"на вход.

Пример ввода:

t ^? Это мой ответ ^? wer

Мой вопрос здесь, почему используется чтение с аргументом -n или без него приводит к различному поведению, и как я могу использовать чтение с аргументом -n, чтобы я мог нормально использовать backspace?

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Другой подход заключается в применении ограничения длины после , когда пользователь предоставил ввод:

read -r text
text=${text:0:1000}
echo "You entered ${#text} characters"
0 голосов
/ 29 мая 2018

Видимо -n отключает Readline, который обычно включен по умолчанию, когда stdin является интерактивным.Используйте -e, чтобы явно включить его.

read -n 1000 -e text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...