Предотвращение отображения введенных символов (например, отключение атрибута «эхо» в termios)

Я пишу bash-скрипт, в котором я считываю отдельные символы из ввода. Я делаю это, используя read -n 1 -s. -n 1— читать только один символ; -s— «тихий» режим, в котором набранные символы не будут видны.

Проблема в том, что, когда текущая выполняемая команда не прочитана(всякий раз, когда выполняются некоторые другие команды в скрипте bash), символ отображается в терминале.

Это нормальное поведение программы в терминале. Чтобы отключить это, обычно отключают режим эха, например, с помощью библиотеки termios.

Как я могу добиться этого в сценарии bash?

Я предпочитаю решения в чистых командах bash / Unix (без других языков сценариев, таких как python, perl и т. д.).

7
задан leemes 11 June 2012 в 20:23
поделиться