Eshell içinden uzaktaki ana bilgisayarda cwd'de uygulamayı çalıştır


12

Uzak sistemlere bağlanmak için sıklıkla Eshell kullanıyorum. Bu uzak sistemlerde bazen geçerli çalışma dizininde komut dosyaları çalıştırmak istiyorum. Normal bir terminalde şunu yazardım:

./my-script.sh

Ne yazık ki, Eshell içinde bu işe yaramaz:

~ $ 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 $ 

Sadece betiğe tam TRAMP yolu sağlarsanız çalışır:

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

Eshell'i .daha basit çağırma işleminin çalışacağı şekilde otomatik olarak genişlemeye ikna etmenin bir yolu var mı ?

Geçici bir çözüm olarak, şu anda C-c .komut satırına geçerli tam yolu ekleyen bağlı bir işlev kullanın . .Beklediğim gibi davranmayı çok isterdim .

Yanıtlar:


11

Bu bir hata gibi görünüyor eshell, rapor etmelisin.

Ben düşünüyorum Eğer bunu düzeltebilirsiniz

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

Alt satırda, sorun formun uzak bir komut satırı inşa tramp sona erer (daha net yapmak için bazı kaçan kaldırıyorum):

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

Bu yüzden şu "gizemli" mesajla env

Bunun yerine üretmesi gereken (ve yukarıdaki komutla elde edilen şey)

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

Sanırım böcek eshell tarafında olduğuna inanıyorum, çünkü tramp'in "/ ssh: remote1: ..." geçerli bir uzaktan komut olmadığını bilmesinin bir yolu olmadığından (eğer olsaydı, muhtemelen çok daha fazlasına sahip olacağız) çoklu sıçrama serseri ile ilgili sorunlar ... ama yine de). Ve eshell, komut açıkça bir trampa yolu olduğunda gerçekten aklı başında olanı yapar.


Sorunsuz çalışır. Bu çözüm için teşekkürler.
Boccaperta-IT

1
Bu gerçekten bir hata ve zaten yukarı doğru düzeltildi.
rekado

@rekado, Hangi emacs sürümü düzeltildi?
djhaskin987


Bu hatayla karşılaştım ve yukarıdaki düzeltmeyi uygulamak zorunda kaldım (ki bu sorunu düzeltir --- bunun için teşekkür ederim). Mac'te homebrew aracılığıyla kurulan 24.5.1 emacs çalıştırıyorum. Akış yukarı düzeltme sorunu benim için düzeltmez.
butala
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.