我想要编写一个封装现有命令行脚本的eshell函数。为了做到这一点,我希望能够从eshell函数执行shell命令。我的第一反应是做这样的事
(defn eshell/myfunc ()
(shell-command "mycommand"))这类作品,除了一些问题。它运行在一个低级的shell中,而不是表现得像一个真正的"exec“命令。这意味着,除其他外,命令"myfunc“似乎是在运行命令时阻塞的。"mycommand“的输出被收集在Shell输出缓冲区的末尾,但它不复制正常shell函数的行为,在正常shell函数运行时,标准输出会出现。
那么,正确的方法是什么呢?
发布于 2012-03-17 05:09:32
试一试
(start-process-shell-command "foo" (current-buffer) "mycommand")如果您需要更多的控制,请参见, Sectioin 37.4 Creating an Asynchronous Process。
https://stackoverflow.com/questions/9742257
复制相似问题