6

Rで現在のユーザーのユーザー名を取得するクロスプラットフォームの方法は何ですか? 私は現在使用しています

system('whoami', intern=TRUE)

whoamiただし、これは、ユーザーがシェル アクセス権を持ち、プログラムが使用可能であることを前提としています。Rでこの情報を取得するためのよりネイティブなものはありますか?

4

1 に答える 1

9

私はこれをします:

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

またはより堅牢な:

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

しかし、UNIX ライクなシステムでは、結果が異なる場合があります system('whoami', intern=TRUE):

whoami はユーザーが作業しているユーザー名を出力し、$USER はログインに使用されたユーザー名を出力します。

たとえば、ユーザーが John としてログインし、root に su すると、whoami は root を表示し、echo $USER は John を表示します。これは、su コマンドがデフォルトでログイン シェルを呼び出さないためです。

于 2013-07-06T06:59:47.660 に答える