在 emacs 中,我可以交互地执行类似的操作:
M-x eshell <返回>
cd /sudo:privileged@myserver:
/path/to/mycommand
这很令人愉快,但我真的很希望能够在 elisp 代码中做这样的事情,作为自动化平凡任务的函数的一部分:
(shell 命令“/sudo:privileged@myserver:/path/to/mycommand”)
这不太管用。显然 shell 命令试图找到路径/sudo:privileged@myserver: 并且可以理解地提示。
是否有一种机制可以让我以编程方式在远程服务器上运行任意命令?我知道,在紧要关头,我可以求助于调用 `(shell-command "sshprivileged@myserver/path/to/mycommand")。不幸的是,由于我所处的网络怪癖,我在某种程度上依赖于tramp多跳代理功能,因此从tramp执行此操作似乎更简单。
我查看了tramp.el以了解他们如何实现tramp-handle-shell-command拦截器,但看起来他们并没有考虑这种情况,或者也许我需要欺骗它使用首先是右缓冲区。我有什么选择?
(我使用的是 GNU Emacs,而不是 xemacs,以防万一)。
最佳答案
如果您想在 eshell
中运行命令,请使用 eshell-command
。
关于Emacs shell命令与tramp模式等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340535/