2010-12-13 14 views
9

Hangisinin kullanılacağından emin değilim."USER" ve "USERNAME" ortam değişkenleri arasındaki fark nedir?

pencerelerin üzerinde
ruby-1.9.2-p0 > ENV.keys.grep /user/i 
=> ["USER", "__CF_USER_TEXT_ENCODING"] 
+0

Aslında Ruby'ye özgü değil. Bunlar, herhangi bir komut dosyasının veya yürütülebilir dosyanın görebileceği ve kullanabileceği ortam değişkenleridir. –

+0

İşletim sistemi uyumluluğu konusunda daha çok endişeliyim. 'ENV [' USER '] 'Mac yüklemelerinde Will olacak mı? Linux'ta ENV ['USER'] == ENV ['USERNAME'] 'kuruluyor mu? Vb .. – RyanScottLewis

+0

Linux üzerinde, 'LOGNAME' var mı? –

cevap

9

: ENV [ 'kullanici'] çıktısı geçerli kullanıcı adı o Ruby 1.8.6 veya 1.9.2 ise

+0

’um var Bash betiğimde“ echo $ USERNAME ”var. 'Sudo./Name.sh' ile çalıştırdığımda, her zaman' root 'yazıyor. Bu yüzden "USERNAME" ifadesinin sudo 'yu kullanan kullanıcı olacağını bilmiyorum. Bunun için bir kaynağın var mı? Anlayabildiğim kadarıyla, "$ USERNAME" bazı ortamlarda olmasa da, "$ USER" ve "USERNAME" ifadeleri aynıdır. – Nateowami

1

, sadece (Mac'te) ENV['USER'] yoktur.

Açık linux: Komut dosyası sudo ile çalıştırılırsa, "USER", sudo-ed-to kullanıcısı olur (genellikle root) ve "USERNAME" sudo çalıştıran kullanıcı olur. http://vlaurie.com/computers2/Articles/environment.htm

:

Mac, Linux modeli takip varsayalım, ancak burada

:-) (i işteyim ve poke bir mac yoksun) kontrol etmek gerekir XP Çevre değişkenlerin bir listesi http://vlaurie.com/computers2/Articles/environment-variables-windows-vista-7.htm

Düzenleme:: güvenli yaklaşım üzerinde ne sistem belirler küçük bir işlevi yazmak olacaktır, (i

Ve işte biraz farklıdır Vista/7 Çevre variables..you'll bildirimin bir liste var Bir Yorum Yaz, Bir Yerde Çalıştır uygulamasını görmek istediğinizden yorumunuzu toplayın. d, buna göre uygun değerleri ayarlar.

+0

Bakın, ben Win 7'de Ruby 1.9.2 üzerinde çalışıyorum ve hem ENV ["USER"] 'hem de" ENV ["USERNAME"] ' – RyanScottLewis

İlgili konular