获取当前用户的名字

什么是在R中获取当前用户的用户名的跨平台方式? 我目前正在使用

system('whoami', intern=TRUE) 

但是,这假定用户有shell访问权限,并且whoami程序可用。 是否有一个更原生的获得这个信息在R?

我会这样做:

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

或更好的更健壮:

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

但是在类Unix系统下,结果有时与system('whoami', intern=TRUE)不同system('whoami', intern=TRUE)

whoami输出用户正在工作的用户名,而$ USER则输出用于登录的用户名。

例如,如果用户以John身份登录并且su为root,那么whoami显示root并且echo $ USER显示John。 这是因为su命令默认情况下不会调用登录shell。