এসএসএইচ এবং এক্সিকিউটিভ কমান্ড


0

আমি একটি সার্ভারে ssh করতে এবং হোস্টে বেশ কয়েকটি কমান্ড কার্যকর করার চেষ্টা করছি।

আমি নিম্নলিখিতগুলির সাথে পরিচালনা করতে পেরেছি এবং এটি পুরোপুরি কার্যকর হয়

ssh -t -X thor 'cd /stmp/username; ls -rtl ; rm ~/tmp.file; tcsh -l'

বর্তমানে, আমি / স্ট্যাম্প / ব্যবহারকারীর নাম / তালিকাভুক্ত সর্বশেষ ফোল্ডারে ডিরেক্টরি পরিবর্তন করতে কমান্ডটি প্রসারিত করার চেষ্টা করছি

প্রথমত, আমি কমান্ডটি পরীক্ষা করেছিলাম যা আমি টার্মিনালে ব্যবহার করতে চেয়েছিলাম এবং এটি কাজ করে। এটি ডিরেক্টরি তালিকার সর্বশেষতম ফোল্ডারে যাবে। কমান্ডটি হ'ল

cd `ls -rtl | cut -d' ' -f9 | tail -1`

এখন আমি উপরের কমান্ডটি ssh কমান্ডের সাথে একত্রিত করার চেষ্টা করছি। কিন্তু এটা কাজ করে না।

ssh -t -X thor 'cd /stmp/username; cd `ls -rtl |cut -d' ' -f9 | tail -1` ; rm ~/tmp.file; tcsh -l'

আমার আদেশে কিছু ভুল আছে?


আপনার কাছে একক-কোটের 2-সেট রয়েছে , ডাবল-কোয়েটে কমান্ডটি মোড়ানো, উদাহরণস্বরূপ ssh -t -X thor "cd ... "আপনার স্থানের জন্য অন্তর্ভুক্ত থাকা একক উদ্ধৃতি সংরক্ষণ করতে বা স্থান থেকে বাঁচতে।
ডেভিড সি র্যাঙ্কিন

@ ডেভিডসি.র্যাঙ্কিন এটির একটি উত্তর হওয়া উচিত বলে আমি মনে করি।
কামিল ম্যাকিয়েরোভস্কি

হ্যাঁ, এটি ছিল সহজ ধরনের, তবে আমি একটি লেখার কাজ করতে পারি। ধন্যবাদ।
ডেভিড সি র্যাঙ্কিন

@ ডেভিডসি.র্যাঙ্কিন ডাবল কোটে পরিবর্তন করা একটি নতুন ত্রুটি দেয়। এখন কমান্ড তালিকাটি বর্তমান ডিরেক্টরিটিকে ls করে যেখানে আমি হোস্ট
থোরের

উত্তর:


2

যখন আপনার কমান্ড কমান্ড-লাইন থেকে কাজ করে, যেমন

cd `ls -rtl | cut -d' ' -f9 | tail -1`

কোন উদ্ধৃতি সমস্যা আছে। যাইহোক, আপনি যখন এটি আপনার sshকমান্ডের সাথে যুক্ত করার চেষ্টা করবেন , আপনি নিজের sshকমান্ডটি একক-কোটায় মুড়ে রাখবেন , তবে আপনি কমান্ডের সাথে (স্থান) বন্ধ করার জন্য আপনার কমান্ডের মধ্যে একক-কোটসও অন্তর্ভুক্ত ' 'করেছেন cut- যার ফলে সমস্যা রয়েছে।

সবচেয়ে সহজ সমাধান আপনার চারপাশের উদ্ধৃত ছেড়ে চলে যেতে হয় sshকমান্ড একক উদ্ধৃতি এবং প্রায় উদ্ধৃতি পরিবর্তন spaceকরতে দুবার কোট এটা মধ্যে যেমন

ssh -t -X thor 'cd /stmp/username; cd `ls -rtl |cut -d" " -f9 | tail -1` ; rm ~/tmp.file; tcsh -l'

(ফলস্বরূপ কোনও পরিবর্তনশীল বা পথ-সম্প্রসারণের সমস্যা নেই)

পরিবর্তন করুন এবং আপনার আরও প্রশ্ন থাকলে আমাকে জানান।

নোট: আপনার কাছে এড়িয়ে চলা উচিত কম্যান্ড-প্রতিকল্পন ব্যবহার ব্যাকটিক পক্ষে $(...)- আরো অনেক কিছু পাঠযোগ্য।


এই সমাধান কাজ করে। ধন্যবাদ। আপনি পোস্টে উল্লেখ করেছেন যে আমার ব্যাকটিক্স ব্যবহার করা উচিত নয়, আপনি কি $ (..) ব্যবহার করে একটি উদাহরণ দেখাতে পারেন
নিষিদ্ধ করে

এর $(ls -rtl |cut -d" " -f9 | tail -1)পরিবর্তে ব্যবহার করুন`ls -rtl |cut -d" " -f9 | tail -1`
ডেভিড সি র্যাঙ্কিন

আমি শুধু কৌতূহলী কেন ssh -t -X thor "cd ... "কাজ করে না?
নিষিদ্ধ করে

1
@ নাবিলিশ এটি স্থানীয়ভাবে ব্যাকটিক্সকে কাজ করে।
কামিল ম্যাকিয়েরোভস্কি

বাইরের ডাবল উদ্ধৃতিগুলি যেহেতু প্রসারকে বাধা দেয় না, স্থানীয়ভাবে কমান্ড প্রসারিত হচ্ছিল - একক-কোটায় মোড়ানো সমস্ত প্রসারকে বাধা দেয়
ডেভিড সি। র্যাঙ্কিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.