আপনার কাছে মূলত দুটি বিকল্প রয়েছে:
export TESTVARIABLE
2 য় স্ক্রিপ্ট কার্যকর করার আগে ভেরিয়েবলটিকে পরিবেশের পরিবর্তনশীল ( ) করুন।
- দ্বিতীয় স্ক্রিপ্টটি উত্স করুন,
. test2.sh
এবং এটি একই শেলের মধ্যে চলবে। এটি আপনাকে অ্যারেগুলির মতো আরও জটিল ভেরিয়েবলগুলি সহজেই ভাগ করতে দেয় তবে এর অর্থ হ'ল অন্যান্য স্ক্রিপ্ট উত্স শেলের মধ্যে পরিবর্তনশীলগুলি পরিবর্তন করতে পারে।
হালনাগাদ:
export
পরিবেশের ভেরিয়েবল সেট করতে ব্যবহার করতে আপনি হয় বিদ্যমান ভেরিয়েবল ব্যবহার করতে পারেন:
A=10
# ...
export A
এটি উভয় bash
এবং কাজ করা উচিত sh
। bash
এটি এর মতো সংযুক্ত করার অনুমতি দেয়:
export A=10
এটি আমার মধ্যেও কাজ করে sh
(যা হ'ল আপনি তা পরীক্ষা bash
করতে ব্যবহার করতে পারেন echo $SHELL
)। তবে আমি বিশ্বাস করি না যে এটি সবার মধ্যে কাজ করার গ্যারান্টিযুক্ত sh
, তাই এটি নিরাপদভাবে চালানো এবং এগুলি পৃথক করে দেওয়া সবচেয়ে ভাল।
আপনি যেভাবে এই রফতানি করেন তা আপনার কার্যকর করা স্ক্রিপ্টগুলিতে দৃশ্যমান হবে, উদাহরণস্বরূপ:
a.sh:
#!/bin/sh
MESSAGE="hello"
export MESSAGE
./b.sh
b.sh:
#!/bin/sh
echo "The message is: $MESSAGE"
তারপর:
$ ./a.sh
The message is: hello
এই দুটি শেল স্ক্রিপ্ট যে সত্য তাও ঘটনামূলক is পরিবেশের ভেরিয়েবলগুলি আপনার সম্পাদিত যে কোনও প্রক্রিয়াতে পাস করা যেতে পারে, উদাহরণস্বরূপ আমরা যদি অজগরটি ব্যবহার করি তবে এর পরিবর্তে এটি দেখতে দেখতে এটি হতে পারে:
a.sh:
#!/bin/sh
MESSAGE="hello"
export MESSAGE
./b.py
b.py:
#!/usr/bin/python
import os
print 'The message is:', os.environ['MESSAGE']
গুন:
পরিবর্তে আমরা এই মত উত্স পারে:
a.sh:
#!/bin/sh
MESSAGE="hello"
. ./b.sh
b.sh:
#!/bin/sh
echo "The message is: $MESSAGE"
তারপর:
$ ./a.sh
The message is: hello
এটি কমবেশি b.sh
সরাসরি সামগ্রীগুলি "আমদানি" করে এবং এটি একই শেলের মধ্যে কার্যকর করে । লক্ষ্য করুন যে এটির অ্যাক্সেসের জন্য আমাদের চলকটি রফতানি করতে হয়নি। এটি আপনার সমস্ত ভেরিয়েবল সুস্পষ্টভাবে ভাগ করে, পাশাপাশি অন্যান্য স্ক্রিপ্টকে শেলের মধ্যে ভেরিয়েবলগুলি যুক্ত / মুছতে / পরিবর্তন করতে দেয়। অবশ্যই, এই মডেলটিতে আপনার উভয় স্ক্রিপ্ট একই ভাষা ( sh
বা bash
) হওয়া উচিত । একটি উদাহরণ দেওয়ার জন্য আমরা কীভাবে বার্তাগুলি পিছনে পিছনে পাস করতে পারি:
a.sh:
#!/bin/sh
MESSAGE="hello"
. ./b.sh
echo "[A] The message is: $MESSAGE"
b.sh:
#!/bin/sh
echo "[B] The message is: $MESSAGE"
MESSAGE="goodbye"
তারপর:
$ ./a.sh
[B] The message is: hello
[A] The message is: goodbye
এটি সমানভাবে ভাল কাজ করে bash
। এটি আরও জটিল ডেটা ভাগ করে নেওয়া সহজ করে তোলে যা আপনি পরিবেশের পরিবর্তনশীল হিসাবে প্রকাশ করতে পারেন নি (কমপক্ষে আপনার অংশে কিছু ভারী উত্তোলন ছাড়াই) যেমন অ্যারে বা সহযোগী অ্যারেগুলি।