Чтение ввода пользователя без эха
Мне интересно, есть ли способ, с помощью которого я могу читать пользовательский ввод из 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, в котором есть "Показать", параметр для ввода пароля.