Buradaexport
bir kabuktaki amacın değişkeni kabuktan başlayan alt işlemlere uygun hale getirmek olduğunu okudum .
Ancak, ben de okudum burada ve burada o "Süreçler onların ebeveyni (onlara ait süreç) kendi ortamını devralır."
Bu durumda, neden ihtiyacımız var export
? Neyi kaçırıyorum?
Kabuk değişkenleri varsayılan olarak ortamın bir parçası değil midir? Fark ne?
set -k
onuncmd ENVVAR=value
yerine kullanabilmeniz için, çağrılmadan önce çalıştırılmadıkçaENVVAR=value cmd
, örneğinizde çalışmaz . Ayrıca, günümüzde pek çok kabuk onu desteklememektedir ve yalnızca Bourne kabuğuyla geriye dönük uyumluluk için desteklemektedir. Bourne (veya Korn) kabuğunda bu fonksiyonlar için işe yaramaz. Ve kabuk ayrıştırmayı etkilediği için, kabuğun orada kullandığı kodu okuduğu zaman yürürlükte olması gerekir.set -k
f