下面是一個例子功能:是否可以通過掃描從控制檯讀取而不回顯字符?
passwordEntry <- function() {
cat("Enter your password: ")
pwd <- scan(n=1, what=character(), quiet=TRUE)
invisible(pwd)
}
,並測試功能:
> passwordEntry()
Enter your password:
1: test
>
有沒有辦法來抑制什麼類型的用戶?或者用一些其他角色替換它?我寫了一個tcl/tk函數來提示用戶輸入密碼,但它在我們的Linux服務器上不起作用。
下面是Paul的鏈接示例。這在Linux或Windows上都不起作用(後者可能是因爲我沒有一個合適的C編譯器,所以會考慮這一點)。
getkey3.c
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
void mygetch (int *ch)
{
struct termios oldt, newt;
tcgetattr (STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr (STDIN_FILENO, TCSANOW, &newt);
*ch = getchar();
tcsetattr (STDIN_FILENO, TCSANOW, &oldt);
return;
}
而且我test.r
腳本:
system('R CMD SHLIB getkey3.c')
dyn.load("getkey3.so")
.C("mygetch",as.integer(0))
dyn.unload("getkey3.so")
我得到這個:
> .C("mygetch",as.integer(0))
[[1]]
[1] -1
嘗試'gWidgets'而不是'tcl/tk'? –
試過gWidgets。問題是Linux服務器上沒有Windowing系統。事實上,我不確定是否有圖形卡。 – jbryer