在emacs中,我可以以交互方式执行此类操作:
M-x eshell< return>
cd /sudo:privileged@myserver:
/path/to/mycommand
这是令人愉快的一切,但我真的希望能够在elisp代码中做这样的事情,作为自动执行普通任务的功能的一部分:
(shell-command "/sudo:privileged@myserver:/path/to/mycommand")
这不太奏效。显然shell命令试图找到路径/ sudo:privileged @ myserver:并且可以理解抱怨。
是否有一种机制可以通过编程方式在远程服务器上运行任意命令?我知道,在紧要关头,我可以求助于调用`(shell-command“ssh privileged @ myserver / path / to / mycommand”)。不幸的是,由于我所处的网络怪癖,我在某种程度上依赖于tramp多跳代理功能,所以从tramp中做这件事似乎更简单。
我看过tramp.el看看他们如何实现他们的tramp-handle-shell-command intercepter,但看起来他们不会考虑这种情况,或者我可能需要欺骗它使用首先是正确的缓冲我有什么选择?
(我使用的是GNU Emacs,而不是xemacs,以防万一)。
答案 0 :(得分:4)
如果要在eshell-command
中运行命令,请使用eshell
。