Yanıtlar:
Bir programı yürüttüğünüzde, alt program ortam değişkenlerini üst öğeden devralır. Örneğin üst öğede $HOME
olarak ayarlanırsa /root
, çocuğun $HOME
değişkeni de ayarlanır /root
.
Bu yalnızca dışa aktarma için işaretlenmiş ortam değişkeni için geçerlidir. Komut satırında aşağıdaki gibi bir değişken ayarlarsanız,
$ FOO="bar"
Bu değişken alt süreçlerde görünmez. Dışa aktarmadığınız sürece değil:
$ export FOO
Bu iki ifadeyi bash'ta tek bir ifadeyle birleştirebilirsiniz (ancak eski okul sh'de değil):
$ export FOO="bar"
Aşağıda, dışa aktarılan ve dışa aktarılmayan değişkenler arasındaki farkı gösteren hızlı bir örnek verilmiştir. Neler olduğunu anlamak için sh -c
, ana kabuğun ortamını devralan bir çocuk kabuğu süreci yaratır.
$ FOO=bar
$ sh -c 'echo $FOO'
$ export FOO
$ sh -c 'echo $FOO'
bar
Not: Kabuk yerleşik komutları hakkında yardım almak için kullanın help export
. Kabuk yerleşikleri, bağımsız yürütülebilir dosyalar yerine kabuğunuzun bir parçası olan komutlardır /bin/ls
.
Unix
Env, set ve printenv komutları tüm ortam değişkenlerini ve değerlerini görüntüler. env ve set ayrıca ortam değişkenlerini ayarlamak için kullanılır ve genellikle doğrudan kabuğa dahil edilir. printenv, komutun tek bağımsız değişkeni olarak bu değişken adını vererek tek bir değişkeni yazdırmak için de kullanılabilir.
Unix'te aşağıdaki komutlar da kullanılabilir, ancak genellikle belirli bir kabuğa bağımlıdır.
export VARIABLE=value # for Bourne, bash, and related shells
setenv VARIABLE value # for csh and related shells
Sen bir göz olabilir bu en
VARIABLE=value; export VARIABLE
kerede atamak ve dışa aktarmak yerine şunları gerektireceğini unutmayın . set
C Shell komut yerine ortam değişkenleri daha kabuk değişkenleri için olduğu; setenv
'nin karşılığıdır export
. set
Bourne türevi kabuklarında komutu tüm değişkenler, sadece dışa (ortam) değişkenleri basar. Tarihsel olarak, en azından, env
komut, yerleşik olarak kolayca oluşturulabilmesine rağmen, kabuktan ayrıdır (yerleşik değil). Ortamı, çalıştıran kabuk için değil, belirli bir komut için ayarlar.
export
bash
kabuk ve diğer Bourne kabuk varyantlarının yerleşik bir komutudur . Alt işlemlere dışa aktarma için bir kabuk değişkenini işaretlemek için kullanılır.