Я использую следующий код для интерактивного ввода данных от пользователя, , что позволяет пользователю вносить изменения во входные данные без удаления всей строки.Чтение строк интерактивно в bash
#! /bin/bash
while :
do
echo -n "prompt# "
read -e input
done
Проблема:
Это также позволяет мне удалить «быстрое #», который я не хочу, чтобы это произошло. Я не хочу, чтобы «приглашение #» было удалено пользователем в любом случае. Я пробовал использовать различные опции в команде read
, но не могу понять это. Как я могу это достичь?
Edit:
Последовательность событий, которые привели к этой проблеме:
1. Я побежал выше сценарий и поступил «привет».
2. Затем я переместил курсор на «e» в «hello» и «нажал и удерживал» backspace в течение некоторого времени, что привело к удалению «prompt #»
3. Если вы не наберете никаких символов он работает отлично, и приглашение не удаляется, но если вы введете даже пробел или любой символ, а затем нажмите обратное пространство, то оно беспорядочно вызывает приглашение.
Посмотрите снимок ниже.
Снимок :
Вы должны использовать встроенную подсказку 'read', или вы сами. 'read -p 'prompt #' -e input'. – 4ae1e1
@ 4ae1e1: Это именно то, что я хотел. Большое спасибо .... –
@ 4ae1e1 - сделайте это ответом! – ghoti