2015-01-07 18 views
5

Muszę robić coś głupiego, ale nie mogę odzyskać obecnej nazwy użytkownika przy użyciu Julii. Najbliższa funkcja w Base wygląda na gethostname(), ale zwraca nazwę komputera, a nie nazwę użytkownika. Próbowałem wywołań systemowych, ale mam problemy z powodu charakteru interpolacji $. Konkretnie, chociaż echo $USER zwraca odpowiednią nazwę użytkownika w terminalu, gdy próbuję następujących w Julia uzyskać różne błędy lub błędne odpowiedzi:Zdobądź aktualną nazwę użytkownika w Julia (Linux)

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

Myślę, że problemem jest to, że Julia jest błędnej wykładni $ jako interpolacji, ale Nie mam pojęcia, jak sobie z tym poradzić.

Wszelkie pomysły?

Odpowiedz

7

Łatwym obejście:

run(`whoami`) 

jednak zbędne, jak to działa:

ENV["USER"] 
+0

Brilliant. Podejście "ENV [" UŻYTKOWNIK "] jest zdecydowanie najlepszym rozwiązaniem. Na wszelki wypadek, czy masz szansę skomentować, co dzieje się nie tak z moim podejściem "echo $ USER"? Tak czy siak, + 1 + Tick (tak szybko, jak SO pozwala mi). –

+3

'run' nie uruchamia powłoki; a powłoka jest potrzebna do interpolacji zmiennych środowiskowych. 'run' będzie interpolować zmienne * Julia * w sposób podobny do powłoki. Czytaj więcej [tutaj] (http://julia.readthedocs.org/en/latest/manual/running-external-programs/). – Amadan

Powiązane problemy