2015-01-07 13 views
5

私は何か愚かなことをする必要がありますが、私はJuliaを使って現在のユーザー名を取得できないようです。 Baseの最も近い機能はgethostname()ですが、ユーザー名ではなくコンピュータ名が返されます。私はシステムコールを試みましたが、補間文字$のために問題があります。 echo $USERは、端末に適切なユーザー名を返しますが、私はジュリアに以下しようとすると、具体的に、私は様々なエラーや間違った答えを得る:Julia(Linux)の現在のユーザー名を取得

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

私は問題がJulia補間として$を誤解していることだと思いますが、私はこれを回避する方法は分かりません。

アイデア?

答えて

7

簡単な回避策は:

run(`whoami`) 

しかし、不必要な、これは作品として:

ENV["USER"] 
+0

ブリリアント。 'ENV [" USER "]'アプローチは確かに行く方法です。完全性のために、私の 'echo $ USER'アプローチで何がうまくいかないのかについてコメントする機会はありますか?いずれにしても、+ 1 + Tick(SOが私を許可するとすぐに)。 –

+3

'run'はシェルを実行しません。シェルは環境変数を補間するために必要なものです。 'run'は* Julia *変数をシェルのように補間します。もっと読む[ここ](http://julia.readthedocs.org/en/latest/manual/running-external-programs/)。 – Amadan

関連する問題