উত্তর:
এটি বাশ ম্যান পৃষ্ঠার একটি অংশ:
এক্সপোর্ট [-fn] [নাম [= শব্দ]] ...
এক্সপোর্ট -p
সরবরাহিত নামগুলি পরবর্তীকালে সম্পাদিত কমান্ডগুলির পরিবেশে স্বয়ংক্রিয় রফতানির জন্য চিহ্নিত করা হয়। যদি -f বিকল্পটি দেওয়া হয়, নামগুলি ফাংশনগুলিকে বোঝায় ...
আপনার যদি কেবলমাত্র বর্তমান পরিবেশে পরিবর্তনশীল প্রয়োজন তবে রফতানি ব্যবহার করা প্রয়োজন হয় না।
var=value
সম্পাদনা:
রফতানি ছাড়াই: কেবলমাত্র বর্তমান পরিবেশ। রফতানি সহ: বর্তমান পরিবেশ এবং শিশু পরিবেশ।
এখানে একটি শিশু পরিবেশে পরিবর্তনশীলের প্রাপ্যতার উপর রফতানীর প্রভাবের একটি প্রদর্শন রয়েছে এবং শিশু পরিবেশের পরিবর্তনগুলি পিতামাতাকে প্রভাবিত করে না:
$ var1=123
$ export var2=456
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []
$ var3=789 bash -c 'echo "child [$var1] [$var2] [$var3]"; var1=111; var2=222; var3=333; echo "child [$var1] [$var2] [$var3]"'
child [] [456] [789]
child [111] [222] [333]
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []
প্রথম প্রতিধ্বনি পরে ( echo "parent..."
) আপনি "123" এবং "456" দেখুন উভয় কারণ var1
এবং var2
বর্তমান পরিবেশে সক্রিয়। আপনি এর জন্য কোনও মান দেখতে পাচ্ছেন না var3
কারণ এটি এখনও সেট করা হয়নি।
" var3=...
" শুরু হওয়া লাইনের পরেও আপনি কোনও মান দেখতে পাবেন না var1
কারণ এটি রফতানি হয়নি। আপনি কি জন্য একটি মান দেখতে var2
কারণ এটি ছিল রপ্তানি। আপনি একটি মান দেখতে পান var3
কারণ এটি কেবলমাত্র শিশু পরিবেশের জন্য সেট করা হয়েছিল ।
( বিকল্পের সাথে bash -c
যুক্তিগুলির বিষয়বস্তু সহ একটি স্ক্রিপ্ট চালনার সমতুল্য -c
A কোনও স্ক্রিপ্ট বা অন্য নির্বাহযোগ্য বা, এক্ষেত্রে, যুক্তিটি bash -c
বর্তমান পরিবেশের একটি শিশু হয়ে উঠবে যা ফলস্বরূপ, শিশুটির পিতা বা মাতা।)
"স্ক্রিপ্ট" এ ভেরিয়েবলের মান পরিবর্তন করা হয়। এটি এখন সেই নতুন মানকে ছাড়িয়ে যায়।
একবার "স্ক্রিপ্ট" শেষ হয়ে গেলে, কার্যকর কার্যকর প্যারেন্ট পরিবেশে ফিরে আসে (এই ক্ষেত্রে কমান্ড লাইন)। শেষ প্রতিধ্বনির পরে, আপনি মূল মানগুলি দেখতে পান কারণ সন্তানের পরিবেশে করা পরিবর্তনগুলি পিতামাতাকে প্রভাবিত করে না।
export
- এই শিশু পরিবেশের জন্য ভেরিয়েবলগুলি উপলব্ধ করা।
তুমি বলেছো এটা
পরিবেশের পরিবর্তনশীল সেট করতে আমি সর্বদা এক্সপোর্ট কমান্ডটি ব্যবহার করি
আপনি যে শব্দটি দিয়েছিলেন, তাতে মনে হচ্ছে আপনি কীভাবে পরিবেশগত পরিবর্তনশীল বজায় রেখেছেন তা জিজ্ঞাসা করার চেষ্টা করছেন। এটি করার জন্য আপনার নিজের export VAR="foo"
বিবৃতিটি আপনার $ HOME / .bash_profile ফাইলে রাখতে হবে (যদি আপনি ব্যাশ ব্যবহার করছেন)। আপনি যদি চান যে পরিবেশগত পরিবর্তনশীলটি সমস্ত ব্যবহারকারীর জন্যই স্থায়ী হয় তবে রুট হয়, তবে এটিকে / ইত্যাদি / প্রোফাইলে যুক্ত করুন। আপনি যদি এটি মূল ব্যবহারকারীর জন্যও যুক্ত করতে চান তবে এটি /root/.bash_profile এ সেট করুন।
এটি সমস্ত লগইন শেলগুলির জন্য কাজ করবে যেখানে বাশ পছন্দের শেল। লগইন শেলগুলির জন্য আপনার .bashrc ব্যবহার করা দরকার। অন্যান্য শেল দেওয়ার জন্য আমার কাছে অন্তর্দৃষ্টি নেই: ডি
রফতানি এটি করা সবচেয়ে সহজ উপায়, তবে কেন এটি এ ছেড়ে যাবেন না?
export VARIABLE=value # for Bourne, bash, and similar shells
setenv VARIABLE value # for csh and similar shells
FOO=BAR; executethisprogram
প্রোগ্রামটি executethisprogram
ভেরিয়েবলের মান জানতে পারবে না FOO
। অন্যদিকে, ব্যবহার করার সময়: FOO=BAR; export FOO; executethisprogram
প্রোগ্রামটি executethisprogram
ভেরিয়েবলের মান জানতে পারবে FOO
।
export FOO
একটি কমান্ড যা ভেরিয়েবলকে চিহ্নিত করে FOO
যাতে কমান্ড জারি করা হয়েছিল সেই এনভ্রিয়মেন্টের শিশু প্রক্রিয়া দ্বারা এটি অ্যাক্সেস করা যায়। এই পিতামাতার স্ক্রিপ্ট বা একটি ইন্টারেক্টিভ শেল হতে পারে।
আপনি এর মতো কিছু করতে পারেন:
VAR=val application
উদাহরণ স্বরূপ:
LANG=C ls --help
ইংরাজীতে আউটপুট।
LANG=pl_PL ls --help
পোলিশ ভাষায় আউটপুট (যদি উপলব্ধ থাকে)।
পূর্ববর্তী সময়ে আপনি VAL = ভাল রফতানি করতে পারবেন না। তোমার করতেই হতো
VAL=val; export VAL
ls
উদাহরণস্বরূপ) বর্তমান (পিতামাতার) পরিবেশে সেই পরিবর্তনশীলটির মান প্রভাবিত না করে।
ls
এটি যে প্রক্রিয়াটি থেকে চালিত হয়েছিল এটি একটি শিশু। আমি যদি ls
কোনও কমান্ড প্রম্পটে টাইপ করি তবে ইন্টারেক্টিভ শেলটি পিতামাতার এবং ls
সন্তান। আমার কাছে যদি এমন স্ক্রিপ্ট থাকে যা ব্যবহার করে ls
তবে স্ক্রিপ্টটি পিতামাতা এবং ls
সে সন্তান।