Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading user input without echoing

Tags:

r

I'm wondering if there is a way that I can read user input from STDIN without echoing it back to the screen in R. I know that readline(), readLines() and scan() can read in user input from the keyboard but none appear to have an option to not echo back.

As you might expect this is to grab a password. So I'm looking for something that would let me do:

> a<-get_password()
Password:
> a
[1] "password"
like image 362
David Lawrence Miller Avatar asked Mar 01 '11 12:03

David Lawrence Miller


1 Answers

What's the operating system? If you can run it from a terminal, this should work.

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

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

This works on OS X using R from Terminal.app, but not from R.app. No idea on a Windows solution, since there doesn't seem to be a native R solution.

like image 115
Noah Avatar answered Oct 25 '22 13:10

Noah