2013-07-06 34 views
5

Che cos'è un modo multipiattaforma per ottenere il nome utente dell'utente corrente in R? Attualmente sto usandoOttieni il nome dell'utente corrente

system('whoami', intern=TRUE) 

Tuttavia ciò presuppone che l'utente ha accesso shell, e che il programma whoami è disponibile. C'è un altro nativo per ottenere queste informazioni in R?

+1

Senza R Come fanno le persone in Windows di solito? Non ho una macchina windows – dickoa

risposta

7

farei questo:

Sys.getenv("USERNAME") ## works under windows 

o meglio più robusto:

Sys.info()[["user"]] 

Ma con il sistema unix-like il risultato a volte è diverso di system('whoami', intern=TRUE):

uscite whoami il nome utente a cui l'utente sta lavorando, mentre $ USER restituisce il nome utente che è stato usato per accedere.

Ad esempio, se l'utente connesso come John e su nella radice, whoami mostra radice e echo $ USER visualizza John. Questo perché il comando su non richiama una shell di login per impostazione predefinita.

+0

Questo approccio suppone che la variabile "USERNAME" sia già impostata. Sto usando Arch Linux e questo non è impostato di default nelle mie impostazioni ma "USER" è impostato. Penso che l'ultimo approccio sia più robusto o 'Sys.getenv (" USER ")' – dickoa

+0

@dickoa ringraziamenti. Modifica la mia risposta – agstudy

+1

IIRC, è possibile utilizzare Sys.info() [["effective_user"]] per ottenere lo stesso risultato di whoami. – Hansi

Problemi correlati