RANDOMপরিবেশের পরিবর্তনশীল নয়। এটি কয়েকটি শাঁস দ্বারা পরিচালিত একটি শেল ভেরিয়েবল। এটি সাধারণত ডিফল্টরূপে রফতানি হয় না। এ কারণেই এটি এর আউটপুটে প্রদর্শিত হবে না env।
একবার এটি একবার অন্তত ব্যবহার করা হয়েছে, এটা হবে আউটপুট দেখা set, যা, নিজে, তালিকা শেল ভেরিয়েবল (এবং ফাংশন) এবং তাদের মান বর্তমান শেল সেশনে। এই আচরণটি শেলের উপর নির্ভর করে এবং pdkshওপেনবিএসডি ব্যবহার করে, পূর্বে ব্যবহৃত না হলেও RANDOMতালিকাভুক্ত হবে set।
এই উত্তরটির বাকী অংশটি RANDOMরফতানি করা হলে (যেমন পরিবেশের পরিবর্তনশীলে রূপান্তরিত) হয়ে গেলে কী ঘটবে বলে আশা করা যায় concerns
এর সাথে রফতানি করা এটিকে export RANDOMপরিবেশের পরিবর্তনযোগ্য করে তুলবে তবে এর ব্যবহার মারাত্মকভাবে সীমাবদ্ধ থাকবে কারণ একটি শিশু প্রক্রিয়াতে এর মান হবে "এলোমেলো তবে স্থির" (যার অর্থ এটি অপরিবর্তনীয় এলোমেলো সংখ্যা হবে)। সঠিক আচরণ শাঁসের মধ্যে পার্থক্য করে।
আমি pdkshনীচের উদাহরণে ওপেনবিএসডি ব্যবহার করছি এবং আমি প্রতিটি awkরানে একটি নতুন এলোমেলো মান পাই (তবে একই সংস্করণের মধ্যে প্রতিবার একই মান awk)। ব্যবহার করে bash, আমি সমস্ত অনুরোধে ঠিক একই র্যান্ডম মান পেতে চাই awk।
$ awk 'BEGIN { print ENVIRON["RANDOM"], ENVIRON["RANDOM"] }'
25444 25444
$ awk 'BEGIN { print ENVIRON["RANDOM"], ENVIRON["RANDOM"] }'
30906 30906
ইন bash, রফতানির মানটি শেলটিতে RANDOMব্যবহার ছাড়াই স্থির থাকবে RANDOM(যেখানে প্রতিটি ব্যবহার $RANDOMএখনও একটি নতুন মান দেয়)।
এর কারণ হল প্রতিটি রেফারেন্স শেল পরিবর্তনশীল RANDOM মধ্যে bashশেল ব্যবহারের অভ্যন্তরীণ তোলে get_random()পরিবর্তনশীল একটি নতুন র্যান্ডম মান দিতে ফাংশন, কিন্তু শেল আপডেট করা হয় না এনভায়রনমেন্ট ভেরিয়েবল RANDOM । এর ফলে অন্য গতিশীল মত আচরণের অনুরূপ bashযেমন ভেরিয়েবল, LINENO, SECONDS, BASHPIDইত্যাদি
এনভায়রনমেন্ট ভেরিয়েবল আপডেট করতে RANDOMমধ্যে bash, আপনি এটি শেল ভেরিয়েবলের মান নির্ধারণ করতে হবে RANDOM এবং পুনরায় রপ্তানি এটা:
export RANDOM="$RANDOM"
এটি আমার কাছে অস্পষ্ট যে এটির এলোমেলো নম্বর জেনারেটরে পুনরায় বীজ দেওয়ার অতিরিক্ত পার্শ্ব প্রতিক্রিয়া আছে bashকি না (তবে একটি শিক্ষিত অনুমান এটি হ'ল না)।
envএটি শেল কমান্ড নয় কারণ এটি সাধারণত শেলের মধ্যে নির্মিত হয় না।