2013-07-06 37 views
5

Cách đa nền tảng để nhận tên người dùng của người dùng hiện tại trong R là gì? Tôi hiện đang sử dụngNhận tên người dùng hiện tại

system('whoami', intern=TRUE) 

Tuy nhiên điều này giả định rằng người dùng có quyền truy cập vỏ, và rằng chương trình whoami có sẵn. Có một bản địa để có được thông tin này trong R?

+1

Không có R Mọi người thường làm như thế nào trong cửa sổ? Tôi không có máy tính cửa sổ – dickoa

Trả lời

7

tôi sẽ làm điều này:

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

hoặc tốt hơn mạnh mẽ hơn:

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

Nhưng theo hệ thống unix-like kết quả là đôi khi khác nhau của system('whoami', intern=TRUE):

đầu ra whoami tên người dùng mà người dùng đang làm việc theo, trong khi $ USER sẽ xuất ra tên người dùng đã được sử dụng để đăng nhập.

Ví dụ: nếu người dùng đăng nhập là John và su vào thư mục gốc, whoami hiển thị thư mục gốc và echo $ USER hiển thị John. Điều này là do lệnh su không gọi một vỏ đăng nhập theo mặc định.

+0

Phương pháp này cho rằng biến "USERNAME" đã được đặt. Tôi đang sử dụng Arch Linux và cài đặt này không được đặt theo mặc định trong cài đặt của tôi nhưng "USER" được đặt. Tôi nghĩ cách tiếp cận cuối cùng là mạnh mẽ hơn hoặc 'Sys.getenv (" USER ")' – dickoa

+0

@dickoa cảm ơn. Tôi sửa câu trả lời của tôi – agstudy

+1

IIRC, bạn có thể sử dụng Sys.info() [["effect_user"]] để có được kết quả tương tự như whoami. – Hansi

Các vấn đề liên quan