读取用户输入而不回显

Dav*_*ler 11 r

我想知道是否有一种方法可以从STDIN读取用户输入而不将其回显到R中的屏幕.我知道readline(),readLines()并且scan()可以从键盘读取用户输入但是没有一个看起来没有选择不回显背部.

正如您所料,这是获取密码.所以我正在寻找能让我这样做的东西:

> a<-get_password()
Password:
> a
[1] "password"
Run Code Online (Sandbox Code Playgroud)

Noa*_*oah 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"
> 
Run Code Online (Sandbox Code Playgroud)

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


Ari*_*man 5

如果这是针对更具生产风格的环境,那么您可以考虑使用R-Tcl/Tk,它具有用于输入密码的"Show"参数.