অবশ্যই, আপনি কমান্ডের মধ্যে পরিবেশের পরিবর্তনশীল সেট করতে পারেন, তবে আপনাকে উদ্ধৃতি দেওয়ার বিষয়ে সতর্কতা অবলম্বন করতে হবে: মনে রাখবেন যে আপনার শেলটি আপনার স্থানীয় কমান্ড লাইনটি পার্স করতে চলেছে, এবং তারপরে রিমোট শেলটি স্ট্রিংটিতে যাবে go গ্রহণ করে।
আপনি যদি ক্লায়েন্টটিতে থাকা সার্ভারে একই ভেরিয়েবল পেতে চান তবে এই SendEnv
বিকল্পটি ব্যবহার করে দেখুন:
ssh -o SendEnv = MYVAR server.example.com মাইকম্যান্ড
যদিও এটির জন্য সার্ভারের সহায়তা প্রয়োজন। ওপেনএসএসএইচ সহ, চলক নামটি অনুমোদিত করতে হবে /etc/sshd_config
।
যদি সার্ভার কেবলমাত্র নির্দিষ্ট নির্দিষ্ট পরিবর্তনশীল নামের অনুমতি দেয় তবে আপনি তার চারপাশে কাজ করতে পারেন; উদাহরণস্বরূপ একটি সাধারণ সেটআপ এর LC_*
মাধ্যমে অনুমতি দেয় এবং আপনি নিম্নলিখিতগুলি করতে পারেন:
ssh -o SendEnv = LC_MYVAR server.example.com 'MYVAR = $ LC_MYVAR; LC_MYVAR আনসেট করুন; MYVAR রফতানি করুন; mycommand '
এমনকি LC_*
যদি কোনও বিকল্প না হয়, আপনি TERM
পরিবেশগত পরিবর্তনশীলতে তথ্যটি পাস করতে পারেন যা সর্বদা অনুলিপি করা হয় (তবে এর দৈর্ঘ্যের সীমাও থাকতে পারে)। আপনাকে এখনও নিশ্চিত করতে হবে যে দূরবর্তী শেলটি TERM
একটি পরিচিত টার্মিনাল প্রকার নির্ধারণের জন্য ভেরিয়েবলকে সীমাবদ্ধ করে না । -t
আপনি যদি রিমোট ইন্টারেক্টিভ শেলটি শুরু না করেন তবে স্যাশ করার বিকল্পটি পাস করুন ।
env TERM = "অতিরিক্ত তথ্য: $ TERM" ssh -t server.example.com 'MYVAR = $ ER শর্ত%: *}; শব্দটি = $ {শব্দটি ## *:}; MYVAR রফতানি করুন; mycommand '
আর একটি সম্ভাবনা হ'ল ভেরিয়েবলটি সরাসরি কমান্ডের মাধ্যমে সংজ্ঞায়িত করা:
ssh -t server.example.com 'MYVAR = "অতিরিক্ত তথ্য" রফতানি করুন; mycommand '
সুতরাং, যদি স্থানীয় ভেরিয়েবলটি পাস করা হয়:
ssh -t server.example.com 'এক্সপোর্ট MYVAR =' "'$ লোকালভার'" '; mycommand '
তবে, উদ্ধৃত ইস্যুগুলি থেকে সাবধান থাকুন: ভেরিয়েবলের মান প্রত্যন্ত পার্শ্বে কার্যকর শেল স্নিপেটে সরাসরি বিভক্ত হবে। উপরের শেষ উদাহরণটি ধরে নেওয়া হয়েছে যে $LOCALVAR
কোনও একক উদ্ধৃতি ( '
) নেই।