Ortam değişkenleri sadece kullanıcı tercihleri için değildir. Bunlar, bir üst süreçten başlatılan alt süreçlere çeşitli ayar bilgilerini iletmek için genel bir mekanizmadır.
Bir işlemin yalnızca başladığı işlemleri etkilemek için belirli ortam değişkenleri ayarlayacağı çok sayıda durum vardır . Örneğin, bir komut dosyası, başlattığı komutların yerel ayarlarını kasıtlı olarak sıfırlayabilir, böylece bunlardan çıktıları ayrıştırabilir. Birçok büyük yazılım paketi için yapı komut dosyaları, make
ortam değişkenleri aracılığıyla bu koordinatın iç içe çağrılarını kullanır . Özelleştirilmiş araçların $ LD_PRELOAD veya $ PATH ile hile yaparak başlattıkları diğer programların çalışma koşullarını değiştirmesi gerekebilir.
Bir kullanıcının başka bir pencerede uzun bir derleme çalışırken yaptığı bir şey, arkasındaki tüm süreçlerin ortam değişkenlerini sihirli bir şekilde değiştirirse , delilik ve kaos ortaya çıkar.
Diğer ortam değişkenleri, bir işlemin başlatıldığı belirli oturum hakkında bilgi içerir. Programlar, $ TERM'in bağlı oldukları terminalin (veya terminal öykünücüsünün) komut setini tanımlamasını bekler; genel bir kullanıcı başına ayarın, birkaç farklı terminal türüyle aynı sisteme giriş yapmayı imkansız hale getirmesi. Tek bir terminal donanımınız olsa ve asla uzaktan oturum açmasanız bile, programlar screen
, oturumları içinde çalışan işlemler için farklı bir $ TERM ayarlamaya bağlıdır.
Daha iyi bir soru, kullanıcı başına veri tabanı yerine kullanıcı tercihi ayarları için neden bir süreç-alt süreç iletişim mekanizması kullanıyoruz?
Cevap: Yeterince iyi çalıştığı ve kullanıcı başına veritabanı oluşturmanın faydaları , ortam değişkenleri yerine bunu kullanmak için her şeyi değiştirme işinin yapılacağı kadar büyük değildir .
Orada nerede (Ben çok az tercih ayarlarıyla düşünebiliriz olmaz örneğin, sadece tek bir komut yürütmek için onları değiştirmek için uygundur bazı kullanım durumlarını olmak. So sırayla değil kaybetmek işlevselliğine, her şey hala olması gerekir geçersiz kılınabilir tarafından daha fazla karmaşıklık ve daha karışık kullanıcılarla sonuçlanan ortam değişkenleri).
Alternatifleri yok sanki değil var . Örneğin, X kaynakları işlem yerine görüntüleme oturumu başınadır. Ama komut satırı programları için erişilmesi zor - ve komut satırı programları genellikle bile yok uzaktan erişim için çalışmalara ihtiyaç vardır bağlanmak için bir X sunucusu.