ভেরিয়েবল এবং ফাংশনগুলি ড্যাশগুলিতে বিভিন্ন নেমস্পেসে থাকে এবং এটি পসিএক্সও নির্দিষ্ট করে :
প্রয়োগটি ফাংশন এবং ভেরিয়েবলের পৃথক নামের স্থান বজায় রাখে।
এগুলি ছাড়াও, ভেরিয়েবলের ডিফল্টরূপে বিশ্বব্যাপী সুযোগ থাকে। কিছু শেল (যেমন বাশ, ksh এবং zsh) local
কেবল স্থানীয় স্কোপ সহ কোনও ফাংশনে ভেরিয়েবলগুলি ঘোষণার জন্য কীওয়ার্ড সরবরাহ করে।
সুতরাং, হ্যাঁ, আপনি যে আচরণটি দেখছেন তা পসিক্সের গ্যারান্টিযুক্ত।
POSIX করেননি আদর্শায়িত local
, এখনো :
প্রারম্ভিক প্রস্তাবে ফাংশনগুলির বর্ণনা এই ধারণার উপর ভিত্তি করে ছিল যে ফাংশনগুলি ক্ষুদ্রতর শেল স্ক্রিপ্টগুলির মতো আচরণ করা উচিত; এটি হল, ভেরিয়েবলগুলি ভাগ করে নেওয়া ছাড়া , কার্যকর করা পরিবেশের বেশিরভাগ উপাদানগুলিকে এমন আচরণ করা উচিত যেন তারা একটি নতুন কার্যকর পরিবেশ, [..]
[..] একটি ফাংশনের মধ্যে স্থানীয় ভেরিয়েবলগুলি বিবেচনা করা হত এবং অন্য একটি প্রাথমিক প্রস্তাব (বিশেষ অন্তর্নির্মিত দ্বারা নিয়ন্ত্রিত local
) এর অন্তর্ভুক্ত ছিল, তবে তাদের সরিয়ে দেওয়া হয়েছে কারণ তারা ফাংশনগুলির জন্য বিকশিত সাধারণ মডেলটির সাথে খাপ খায় না এবং কারণ এখনও যুক্ত করার বিরোধিতা ছিল আরেকটি নতুন বিশেষ অন্তর্নির্মিত এটি historicalতিহাসিক অনুশীলনের অংশ ছিল না। যদি এই স্ট্যান্ডার্ডের ভবিষ্যতের সংস্করণে এই স্থানীয় পরিবর্তনশীল ব্যবস্থা গ্রহণ করা হয় তবে বাস্তবায়নের ক্ষেত্রে সনাক্তকারী local
(পাশাপাশি typeset
কর্নশেলের মতো ব্যবহৃত) সংরক্ষণ করা উচিত ।
(জোর আমার)
fn
ফাংশনটি একটি পৃথক নেমস্পেসে রয়েছে; যদি এটি কার্যকর করে একবার তার সংজ্ঞাটি মুছে ফেলা হয়, আমরা ঠিক একই আচরণ দেখতে চাই। আপনার দেখানো উচিত যে ফাংশনটি এখনও সংজ্ঞায়িত রয়েছে, উদাহরণস্বরূপtype fn
পরে।