Я пишу bash-скрипт, в котором я считываю отдельные символы из ввода. Я делаю это, используя read -n 1 -s
. -n 1
— читать только один символ; -s
— «тихий» режим, в котором набранные символы не будут видны.
Проблема в том, что, когда текущая выполняемая команда не прочитана
(всякий раз, когда выполняются некоторые другие команды в скрипте bash), символ отображается в терминале.
Это нормальное поведение программы в терминале. Чтобы отключить это, обычно отключают режим эха, например, с помощью библиотеки termios.
Как я могу добиться этого в сценарии bash?
Я предпочитаю решения в чистых командах bash / Unix (без других языков сценариев, таких как python, perl и т. д.).