আমার একটি কর্ন শেল স্ক্রিপ্ট রয়েছে
#!/bin/ksh
# set the right ENV
case $INPUT in
abc)
export BIN=${ABC_BIN}
;;
def)
export BIN=${DEF_BIN}
;;
*)
export BIN=${BASE_BIN}
;;
esac
# exit 0 <- bad idea for sourcing the file
এখন এই ভিআরগুলি কেবল একটি সাবশেলে রফতানি করা হয়, তবে আমি এগুলি আমার পিতামাতার শেলের মধ্যেও সেট করে রাখতে চাই, তাই যখন আমি প্রম্পটে থাকি তখনও সেগুলি এখনও সঠিকভাবে সেট করা থাকে।
আমি সম্পর্কে জানি
. .myscript.sh
তবে 'সোর্সিং' না করে কি করার উপায় আছে? যেহেতু আমার ব্যবহারকারীরা প্রায়শই 'উত্স' করতে ভুলে যান।
EDIT1: "প্রস্থান 0" অংশটি সরিয়ে ফেলতে - এটি প্রথমে চিন্তা না করে কেবল টাইপ করছিলাম
এডিআইটি 2: আমার কেন এটি প্রয়োজন তার আরও বিশদ যুক্ত করার জন্য: আমার বিকাশকারীরা (সরলতার জন্য) 2 টি অ্যাপ্লিকেশনের জন্য কোড লেখেন: এবিসি এবং ডিএফ। প্রতিটি অ্যাপ্লিকেশন পৃথক ব্যবহারকারী ইউএসআরসিসি এবং ইউএসডিএফ দ্বারা উত্পাদিত হয়, অতএব তাদের $ বিন, $ সিএফজি, $ ওআরআহোম সেটআপ করুন - যা কিছু অ্যাপ্লিকেশানের সাথে সুনির্দিষ্ট।
সুতরাং
- উপরের স্ক্রিপ্টে এবিসির $ BIN = / opt / abc / bin # $ ABC_BIN
- DEF- এর $ বিন = / opt / def / বিন # bin DEF_BIN
প্রভৃতি
এখন, ডিভ বাক্সে বিকাশকারীরা তাদের নিজস্ব অ্যাকাউন্ট 'জাস্টিন_কেস' এর অধীনে একই সাথে এবিসি এবং ডিইএফ উভয়কেই বিকাশ করতে পারে এবং আমি তাদের ফাইলটি (উপরে) উত্স হিসাবে তৈরি করি যাতে তারা তাদের ENV বার সেটিংস পিছনে পিছনে স্যুইচ করতে পারে। (IN বিনের একবারে $ এবিসি_বিইনকে নির্দেশ করা উচিত এবং তারপরে আমাকে $ BIN = $ DEF_BIN এ স্যুইচ করা দরকার)
এখন, স্ক্রিপ্টটিতে একই অ্যাপ্লিকেশন ইত্যাদির সমান্তরাল বিকাশের জন্য নতুন স্যান্ডবক্সও তৈরি করা উচিত this এটি আমাকে ইন্টারেক্টিভভাবে করতে সক্ষম করে, স্যান্ডবক্সের নাম জিজ্ঞাসা, ইত্যাদি makes
- / হোম / justin_case / sandbox_abc_beta2
- / হোম / justin_case / sandbox_abc_r1
- / হোম / justin_case / sandbox_def_r1
আমি বিবেচনা করেছিলাম এমন অন্যান্য বিকল্পটি হ'ল এলিয়াস লিখতে এবং সেগুলি প্রতিটি ব্যবহারকারীর প্রোফাইলে যুক্ত করা
- ওরফে 'সেটআপ_এনভি =। .myscript.sh '
এবং এটি দিয়ে চালান
- setup_env প্যারামিটার 1 ... প্যারামিটারএক্স
এটি এখন আমার আরও অর্থবোধ করে