Oto przykład funkcja:Czy można odczytać z konsoli ze skanowaniem bez echa znaków?
passwordEntry <- function() {
cat("Enter your password: ")
pwd <- scan(n=1, what=character(), quiet=TRUE)
invisible(pwd)
}
I przetestować funkcję:
> passwordEntry()
Enter your password:
1: test
>
Czy istnieje sposób, aby stłumić jakie typy użytkownika? Lub zastąpić go inną postacią? Napisałem funkcję tcl/tk, aby zapytać użytkownika o hasło, ale nie działa na naszym serwerze Linux.
Oto przykład z linku Paula poniżej. Nie działa to ani w Linuksie, ani w Windowsie (ten ostatni prawdopodobnie dlatego, że nie mam odpowiedniego kompilatora C, więc to przyjrzę).
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;
}
A moja test.r
scenariusz:
system('R CMD SHLIB getkey3.c')
dyn.load("getkey3.so")
.C("mygetch",as.integer(0))
dyn.unload("getkey3.so")
uzyskać to:
> .C("mygetch",as.integer(0))
[[1]]
[1] -1
spróbuj 'gWidgets' zamiast' tcl/tk'? –
Wypróbowane gWidgety. Problem polega na tym, że na serwerze Linux nie ma systemu okienkowego. W rzeczywistości nie jestem pewien, czy jest nawet karta graficzna. – jbryer