এসহেলের মধ্যে থেকে রিমোট হোস্টে সিডব্লিউডে অ্যাপ্লিকেশন চালান


12

আমি প্রায়শই রিমোট সিস্টেমের সাথে সংযোগ করতে এসেল ব্যবহার করি। এই রিমোট সিস্টেমে আমি মাঝে মাঝে বর্তমান ওয়ার্কিং ডিরেক্টরিতে স্ক্রিপ্ট চালাতে চাই। একটি নিয়মিত টার্মিনালে আমি এটি টাইপ করব:

./my-script.sh

দুর্ভাগ্যক্রমে, এসেলের ভিতরে এটি কাজ করবে না:

~ $ cd /remote1:~
/ssh:remote1:/home/rekado $ ./my-script.sh 
env: /ssh:remote1:/home/rekado/my-script.sh: No such file or directory
/ssh:remote1:/home/rekado $ 

এটি কেবল তখনই কাজ করে যদি আমি স্ক্রিপ্টটিতে সম্পূর্ণ ট্রাম্প পথ সরবরাহ করি:

/ssh:remote1:/home/rekado $ /ssh:remote1:/home/rekado/my-script.sh 
It works!
/ssh:remote1:/home/rekado $ 

.সরল অনুরোধটি কেবল কাজ করে এমন কি স্বয়ংক্রিয়ভাবে প্রসারিত করার জন্য এশেলকে বোঝানোর কোনও উপায় আছে ?

একটি workaround হিসাবে আমি বর্তমানে C-c .কমান্ড লাইনে বর্তমান সম্পূর্ণ পথ সন্নিবেশ করা একটি আবদ্ধ ফাংশন ব্যবহার । আমি .কেবল প্রত্যাশা মতো আচরণ করতে পছন্দ করি ।

উত্তর:


11

এটি দেখতে বাগের মতো দেখাচ্ছে eshell, আপনার এটি রিপোর্ট করা উচিত।

আমি মনে করি আপনি এটি দ্বারা ঠিক করতে পারেন

(defadvice eshell-gather-process-output (before absolute-cmd (command args) act)
  (setq command (file-truename command)))

নীচের অংশে, সমস্যাটি হ'ল ট্র্যাম্পটি ফর্মের একটি রিমোট কমান্ড লাইন তৈরির কাজ শেষ করে (আমি এটিকে আরও পরিষ্কার করার জন্য কিছুটা পালিয়ে আসছি):

cd /home/rekado && exec env PS1='/ssh:remote1:/home/rekado $' /ssh:remote1:/home/rekado/my-script.sh

যে কারণে আপনি সেই "রহস্যময়" বার্তাটি শেষ করেন env

পরিবর্তে এটি উত্পন্ন করার জন্য কী প্রয়োজন (এবং এটি উপরের কমান্ড দ্বারা অর্জন করা হয়েছে) এর মতো

cd /home/rekado && exec env PS1='/ssh:remote1:/home/rekado $' /home/rekado/my-script.sh

আমি বিশ্বাস করি যে ত্রুটিটি eshell পাশে রয়েছে যদিও ট্রাম্পের জানার কোনও উপায় নেই যে "/ ssh: দূরত্ব 1: ..." একটি বৈধ রিমোট কমান্ড নয় (যদিও এটি থাকলেও আমাদের সম্ভবত আরও অনেক কিছু থাকত মাল্টি হপ ট্র্যাম্পের সমস্যা ... তবে যাইহোক)। এবং কমান্ড স্পষ্টভাবে একটি ট্রাম্প পথ যখন eshell সত্যিই বুদ্ধিমান কাজ করে।


সাবলীলভাবে কাজ করে। এই সমাধানের জন্য ধন্যবাদ।
বোকপেপার-আইটি

1
এটি প্রকৃতপক্ষে একটি বাগ এবং এটি ইতিমধ্যে আপস্ট্রিম ঠিক করা হয়েছে।
রেকাডো

@ রেকাডো, এটি ইমাসের কোন সংস্করণে সংশোধন করা হয়েছে?
djhaskin987

আমি বিশ্বাস করি এটি এই প্রতিশ্রুতি দিয়ে স্থির হয়েছিল: git.savannah.gnu.org/cgit/emacs.git/commit/…
রেক্যাডো

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