Чтение ввода пользователя без эха

Мне интересно, есть ли способ, с помощью которого я могу читать пользовательский ввод из STDIN, не возвращая его обратно на экран в R. Я знаю, что readline(), readLines() и scan() могут читать в пользовательском вводе из клавиатура, но ни одна из них не имеет возможности не возвращаться назад.

Как вы могли ожидать, это захват пароля. Поэтому я ищу что-то, что позволит мне сделать:

> a<-get_password()
Password:
> a
[1] "password"

Ответ 1

Что такое операционная система? Если вы можете запустить его с терминала, это должно работать.

get_password <- function() {
cat("Password: ")
system("stty -echo")
a <- readline()
system("stty echo")
cat("\n")
return(a)
}

> a <- get_password()
Password: 
> a
[1] "sdfs"
> 

Это работает на OS X, используя R из Terminal.app, но не из R.app. Нет идеи по решению Windows, поскольку, похоже, не существует собственного R-решения.

Ответ 2

Если это для более производственной среды, то вы можете использовать R-Tcl/Tk, в котором есть "Показать", параметр для ввода пароля.