Введите команду, чтобы вывести «^M» в терминале.

Введите команду, чтобы вывести «^M» в терминале.

Когда я нажимаю Enter или Backspace в терминале, я получаю это:

Would you like to create one now? (yes/no): no^M^?^?^?^?^?^?^?^M^?^?

Что тут такого?

решение1

Это происходит, потому что программа, которая считывает пользовательский ввод, не может обрабатывать специальные символы. Терминал находится в режиме raw. Если программа является скриптом, вы можете использовать функцию read -eBash readline, которая может обрабатывать специальные символы.

Связанный контент