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

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

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

最佳答案

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

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中可以使用Terminal.app中的R,但不能使用R.app中的R。 Windows解决方案尚无定论,因为似乎没有 native R解决方案。

关于读取用户输入而不回显,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5154335/

10-12 23:31