Piszę skrypt basha, w którym odczytuję pojedyncze znaki z danych wejściowych. Robię to za pomocą read -n 1 -s
. -n 1
to odczyt pojedynczego znaku; -s
to tryb "cichy", w którym wpisane znaki nie będą widoczne.Zapobieganie wyświetlaniu znaków (np. Wyłączanie atrybutu "echo" w termiach)
Problem polega na tym, że gdy aktualnie wykonywana komenda nie jest read
(za każdym razem, gdy wykonywane są inne polecenia w skrypcie basha), zostanie wyświetlony znak w terminalu.
Jest to normalne zachowanie programu na terminalu. Aby to wyłączyć, zwykle wyłącza się tryb echa, na przykład za pomocą biblioteki termios.
Jak mogę to osiągnąć w skrypcie basha?
Preferuję rozwiązania w czystych komendach bash/Unix (bez innych języków skryptowych, takich jak python, perl itp.).
Tak. To było szybkie :) Dzięki! (Mogę przyjąć w ciągu 12 minut.) – leemes