সাধারণত, আপনি যদি এরকম ssh করতে একটি আদেশ পাস করেন
ssh me@example.com 'some-command.sh'
আপনি একটি অ-ইন্টারেক্টিভ সেশন পান এবং কমান্ডটি (বা স্ক্রিপ্ট, বা যাই হোক না কেন) চালানোর সাথে সাথে ssh প্রস্থান করে। আমি কীভাবে একটি ইন্টারেক্টিভ সেশন পেতে পারি এবং এখনও আমার স্থানীয় মেশিন থেকে নির্দিষ্ট করা একটি কমান্ড চালাতে পারি। উদাহরণস্বরূপ, আমি স্ক্রিনটি খুলতে এবং নির্দিষ্ট স্ক্রিন সেশনটি পুনরায় চালু করতে সক্ষম হতে চাই:
ssh me@example.com 'screen -r 12345'
তবে এটি অনুমোদিত নয়, ত্রুটিটি ফিরিয়ে "" অবশ্যই একটি টার্মিনালের সাথে সংযুক্ত থাকতে হবে। " আমি অনুমান করি যার মূলত অর্থ "অবশ্যই একটি ইন্টারেক্টিভ শেল থেকে এই আদেশটি কল করতে হবে"।
অন্য উদাহরণ হিসাবে, আমি কাজের জায়গায় একটি টন মেশিন ব্যবহার করি যা প্রায়শই আমাকে নির্দিষ্ট কিছু কাজের অধিকার থাকার জন্য একটি শেয়ার্ড অ্যাকাউন্ট ব্যবহার করা প্রয়োজন (হ্যাঁ আমি জানি: খারাপ ধারণা কিন্তু আমাকে দোষ দেবেন না, আমি জিনিসগুলি সেট আপ করি নি) উপায়), এবং তাদের সাধারণত ডিফল্ট শেল হিসাবে ksh থাকে। আমি লগ ইন করতে, ব্যাশ (বা zsh) এ স্যুইচ করতে এবং আমার নিজের অ্যাকাউন্টের .bash_profile (বা .zshrc) উত্স করতে চাই। এটি সহজ হবে যদি আমি একটি ইন্টারেক্টিভ ssh সেশন স্থাপন করতে পারি এবং লগইন চালানোর জন্য দূরবর্তী মেশিনে একটি আদেশ পাঠাতে পারি।
আমি পোস্ট করব যে মনের একটি খুব ক্লডজি (এবং অনির্ধারিত) সমাধান আছে তবে আমি আশা করছি যে আরও ভাল কোনও উপায় জানেন।
আপডেট: যাঁরা এটি বুঝতে পারেন নি, তাদের পক্ষে আমি এই সমস্ত কাজ করার পরিকল্পনা করছি না, তাই আমাকে ইন্টারেক্টিভ সেশনটি খুলতে বলার পরে হাতে করে আসলে বাস্তবে কোনও সমস্যার সমাধান হয় না।
২ য় আপডেট: আবারও স্পষ্ট করার চেষ্টা করার জন্য: আমি সার্ভারে (স্বেচ্ছাসেবী) কমান্ডগুলি চালানোর চেষ্টা করছি (প্রোগ্রামটিমেটিকভাবে ক্লায়েন্টের উপরে নির্দিষ্ট করা) তবে তারপরে একটি ইন্টারেক্টিভ সেশন খোলা থাকে যা সেই প্রোগ্রামিক কমান্ড দ্বারা যে কোনও কিছু দ্বারা প্রভাবিত হয়।
echo "command" | ssh user@remote_host