В простом Lua ответ прост: вы не можете.
Поскольку Lua написан на ANSI C, вы не можете получить символы из командной строки, не нажимая ввод.Однако вы можете использовать привязки к библиотекам, таким как curses.lua, который поставляется с luaposix .
. Или, если вы предполагаете, что у вас есть ANSI VT, вы можете прибегнуть к такому хаку, какэто:
io.write("\027[s") -- save cursor position
l=io.read()
io.write('\027[u',('*'):rep(#l),"\n") -- rewind to where we were, and fill with the correct amount of stars
print("pst, I got", l, "but don't tell anyone!")
Дополнительная информация о контроле терминала ANSI
Но если он будет использоваться для приложения Java, почему бы не использовать Java для запроса пароля.Я думаю, что их поддержка и контроль над клиентом будут лучше и кроссплатформенными ...