2015-01-07 16 views
5

Tôi phải làm điều gì đó ngu ngốc, nhưng dường như tôi không thể truy xuất tên người dùng hiện tại bằng Julia. Hàm gần nhất trong Base dường như là gethostname(), nhưng trả về tên máy tính, không phải tên người dùng. Tôi đã thử các cuộc gọi hệ thống nhưng đang gặp sự cố do ký tự nội suy $. Cụ thể, mặc dù echo $USER trả về tên người dùng thích hợp trong một thiết bị đầu cuối, khi tôi thử như sau trong Julia tôi nhận được lỗi khác nhau hoặc câu trả lời đúng:Nhận tên người dùng hiện tại ở Julia (Linux)

run(`echo $USER`) 
run(`echo "$USER"`) 
run(`echo '$USER'`) 
run(`echo '$'USER`) 
run(`echo \$USER`) 

Tôi đoán vấn đề là Julia là hiểu sai các $ như một suy, nhưng Tôi không biết phải làm thế nào để giải quyết chuyện này.

Bất kỳ ý tưởng nào?

Trả lời

7

Một workaround dễ dàng:

run(`whoami`) 

Nhưng không cần thiết, như công trình này:

ENV["USER"] 
+0

Brilliant. Cách tiếp cận 'ENV [" USER "]' chắc chắn là con đường để đi. Vì lợi ích của sự hoàn chỉnh, bất kỳ cơ hội nào bạn có thể nhận xét về những gì đang xảy ra với phương pháp 'echo $ USER' của tôi? Dù bằng cách nào, + 1 + Tick (ngay khi SO cho phép tôi). –

+3

'chạy' không chạy trình bao; và vỏ là những gì bạn cần để nội suy các biến môi trường. 'run' sẽ nội suy * các biến Julia * mặc dù, theo cách giống như trình bao. Đọc thêm [tại đây] (http://julia.readthedocs.org/en/latest/manual/running-external-programs/). – Amadan

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