Чтение ввода пользователя без повторения - PullRequest
11 голосов
/ 01 марта 2011

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

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

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

Ответы [ 2 ]

9 голосов
/ 01 марта 2011

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

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.

5 голосов
/ 01 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...