関数の例を次に示します。
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