读取用户输入而不回显

时间:2011-03-01 12:12:38

标签: r

我想知道是否有一种方法可以从STDIN读取用户输入而不将其回显到R中的屏幕。我知道readline()readLines()scan()可以从键盘读入用户输入,但似乎没有选项可以回显。

正如您所料,这是获取密码。所以我正在寻找能让我做的事情:

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

2 个答案:

答案 0 :(得分:9)

操作系统是什么?如果你可以从终端运行它,这应该可行。

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

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

这适用于使用来自Terminal.app的R的OS X,但不适用于R.app。不知道Windows解决方案,因为似乎没有本机R解决方案。

答案 1 :(得分:5)

如果这是针对更具生产风格的环境,那么您可以考虑使用R-Tcl/Tk,其中包含用于输入密码的“Show”参数。

相关问题