2013-07-06 10 views
5

Geçerli kullanıcının kullanıcı adını R? Ye almak için çapraz platform bir yolu nedir? Şu andaGeçerli kullanıcı ismini alın

system('whoami', intern=TRUE) 

Ancak bu kullanıcı kabuk erişimi olduğunu varsayar kullanıyorum ve bu whoami programı mevcuttur. Bu bilgiyi R dilinde almak için daha yerli var mı?

+1

R olmadan İnsanlar genellikle pencerelerde nasıl yapar? Windows makinem yok – dickoa

cevap

7

Bunu yapacağını:

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

veya daha iyi daha sağlam:

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

Ama Unix benzeri sistem altında sonuç system('whoami', intern=TRUE) bazen farklıdır:

benkimim çıkışlar Kullanıcının kullandığı kullanıcı adı, $ USER kullanıcı adını verir Bu giriş için kullanıldı. Kullanıcı kök görüntüler ve yankı whoami kökü içine John ve SU adına giriş Örneğin

, $ KULLANICI John görüntüler. Bunun nedeni, su komutunun varsayılan olarak oturum açma kabuğunu çağırmamasıdır.

+0

Bu yaklaşım "USERNAME" değişkeninin önceden ayarlanmış olduğunu varsayıyor. Arch Linux kullanıyorum ve bu benim ayarımda varsayılan olarak ayarlanmadı, ancak "USER" ayarlandı. Son yaklaşımın daha sağlam olduğunu ya da Sys.getenv ("USER") – dickoa

+0

@ dickoo teşekkür ederim. Cevabımı – agstudy

+1

IIRC'de düzenlerim, whoma ile aynı çıktıyı almak için Sys.info() [["effective_user"]] kullanabilirsiniz. – Hansi