ইউনিক্স সিনট্যাক্সের সমতুল্য কাজটি সম্পাদন করতে আপনাকে কেবল পরিবেশের পরিবর্তনশীল সেট করতে হবে না, আপনি কমান্ডটি কার্যকর করার পরে এটি পূর্বের মানটিতে পুনরায় সেট করতে হবে। আমার পাওয়ারশেল প্রোফাইলে নিম্নলিখিতগুলির অনুরূপ ফাংশন যুক্ত করে আমি ব্যবহৃত সাধারণ কমান্ডগুলির জন্য এটি সম্পন্ন করেছি।
function cmd_special()
{
$orig_master = $env:app_master
$env:app_master = 'http://host.example.com'
mycmd $args
$env:app_master = $orig_master
}
তাই mycmd
কিছু এক্সিকিউটেবল পরিবেশ ভেরিয়েবলের মান উপর নির্ভর করে ভিন্নভাবে পরিচালিত হয় app_master
। সংজ্ঞায়িত করে cmd_special
, আমি এখন cmd_special
কমান্ড লাইন থেকে (অন্যান্য পরামিতি সহ) app_master
এনভায়রনমেন্ট ভেরিয়েবল সেট দিয়ে এক্সিকিউট করতে পারি ... এবং কমান্ড কার্যকর হওয়ার পরে এটি পুনরায় সেট (বা এমনকি আনসেট) হয়।
সম্ভবত, আপনি একটি একক অনুরোধের জন্য এই অ্যাড-হকও করতে পারেন।
& { $orig_master = $env:appmaster; $env:app_master = 'http://host.example.com'; mycmd $args; $env:app_master = $orig_master }
এটি এর চেয়ে সত্যই সহজ হওয়া উচিত, তবে স্পষ্টতই এটি এমন কোনও ব্যবহারের ক্ষেত্রে নয় যা পাওয়ারশেলের দ্বারা সহজেই সমর্থিত। সম্ভবত ভবিষ্যতের সংস্করণ (বা তৃতীয় পক্ষের ক্রিয়াকলাপ) এই ব্যবহারের ক্ষেত্রে সহজতর করবে। পাওয়ারশেলের যদি একটি সেমিডলেট থাকে যা এটি করতে পারে তবে এটি দুর্দান্ত হবে, যেমন:
with-env app_master='http://host.example.com' mycmd
সম্ভবত কোনও পাওয়ারশেল গুরু পরামর্শ দিতে পারে যে কীভাবে এই জাতীয় সেন্টিমিটার লিখতে পারে।