যখন কোনও স্ক্রিপ্ট অন্য স্ক্রিপ্টের অনুরোধ করে, তখন মূল স্ক্রিপ্টের ভেরিয়েবলগুলি রফতানি করা যায় এবং তারপরে সেগুলি শিশু স্ক্রিপ্টে দৃশ্যমান হবে। রফতানির কাজগুলি একটি সুস্পষ্ট সাধারণীকরণ: পিতামাতার কাছ থেকে ফাংশনটি রফতানি করুন, এটি সন্তানের মধ্যে দৃশ্যমান করুন।
পরিবেশ হ'ল একমাত্র সুবিধাজনক উপায় যে কোনও প্রক্রিয়া তার বাচ্চাদের কাছে স্বেচ্ছাসেবী তথ্য প্রেরণ করতে পারে। ডেটাটি এমন স্ট্রিংগুলিতে মার্শাল করতে হবে যাতে নাল বাইট থাকে না, যা শেল ফাংশনগুলির জন্য কোনও অসুবিধা নয়। অন্যান্য সম্ভাব্য পদ্ধতি রয়েছে যেমন ভাগ করা মেমরি ব্লক বা অস্থায়ী ফাইলগুলি ফাইল বর্ণনাকারীদের মাধ্যমে পাস করা হয় তবে এগুলি মধ্যবর্তী প্রোগ্রামগুলিতে সমস্যা সৃষ্টি করতে পারে যা তাদের সাথে কী করতে হবে তা জানে না বা তাদের বন্ধ করে দেবে। প্রোগ্রামগুলি এমন একটি পরিবেশে চলার প্রত্যাশা করে যার মধ্যে ভেরিয়েবল রয়েছে যা তারা জানে না বা যত্ন করে না, তাই তারা ওভাররাইট করা বা মুছে ফেলবে না।
এনভায়রনমেন্ট ভেরিয়েবলের নাম হিসাবে ফাংশনটির নামটি ব্যবহার করা পছন্দ একটি অদ্ভুত। এক কিছুর জন্য, এর অর্থ হ'ল একটি রফতানি পরিবর্তনশীল একই নামের রফতানি ফাংশনের সাথে সংঘর্ষ হয়।
এক্সপোর্ট করা ফাংশনগুলি একটি পুরানো বৈশিষ্ট্য। এসভিআর 2 তে বোর্ন শেলটিতে ফাংশনগুলি যুক্ত করা হয়েছিল এবং একই বছর (1984) প্রকাশিত সংস্করণ 8 শেলের রফতানি করা ক্রিয়াকলাপগুলি । সেই শেলটিতে, ভেরিয়েবল এবং ফাংশনগুলি একই নেমস্পেস ব্যবহার করে। আমি জানি না কীভাবে ফাংশন রফতানি কাজ করেছিল। Heirloom শেল একটি বোর্ন বৈকল্পিক যা ফাংশন আছে কিন্তু তাদের রপ্তানি না উপর ভিত্তি করে।
এটিটি কেএসআই অনুমান করে রফতানি করা কার্যগুলি সমর্থন করে তবে উত্সের দিকে তাকানো বা এটির সাথে খেলে আমি দেখতে পাচ্ছি না যে এটি কাজ করে, ksh93u হিসাবে as
env -i /usr/bin/ksh -c 'f=variable; f () { echo function; }; typeset -fx f; /usr/bin/env; ksh -c f'
_=*25182*/usr/bin/env
PWD=/home/gilles
SHLVL=1
A__z="*SHLVL
ksh: f: not found
Ksh এর সর্বজনীন ডোমেন ক্লোনস (pdksh, mksh), ড্যাশ এবং zsh রফতানি কার্য সমর্থন করে না।