相当于;执行官;在emacs*eshell*中?

相当于;执行官;在emacs*eshell*中?,emacs,elisp,eshell,Emacs,Elisp,Eshell,我想编写一个eshell函数,它可以包装现有的命令行脚本。为了做到这一点,我希望能够从eshell函数执行shell命令。我的第一本能是做类似的事情 (defn eshell/myfunc () (shell-command "mycommand")) 除了一些问题之外,这类工作是可行的。它在低级shell中运行,而不像真正的“exec”命令。这意味着,除其他外,eshell中的命令“myfunc”在命令运行时出现阻塞。“mycommand”的输出被收集,并在最后显示在Shell输出缓冲区

我想编写一个eshell函数,它可以包装现有的命令行脚本。为了做到这一点,我希望能够从eshell函数执行shell命令。我的第一本能是做类似的事情

(defn eshell/myfunc ()
  (shell-command "mycommand"))
除了一些问题之外,这类工作是可行的。它在低级shell中运行,而不像真正的“exec”命令。这意味着,除其他外,eshell中的命令“myfunc”在命令运行时出现阻塞。“mycommand”的输出被收集,并在最后显示在Shell输出缓冲区中,但它不复制正常Shell函数的行为,即标准输出在运行时显示

那么,正确的方法是什么呢?

试试看

(start-process-shell-command "foo" (current-buffer) "mycommand")
如果需要更多控制,请参阅