我想编写一个包装现有命令行脚本的 eshell 函数。为了做到这一点,我希望能够从 eshell 函数执行 shell 命令。我的第一直觉是做类似的事情
(defn eshell/myfunc ()
(shell-command "mycommand"))
这种作品,除了一些问题。它在劣质外壳中运行,而不是像真正的“exec”命令一样运行。这意味着,除其他外,eshell 中的命令“myfunc”似乎在命令运行时被阻塞。“mycommand”的输出被收集并出现在最后的 Shell 输出缓冲区中,但它不复制普通 shell 函数的行为,标准输出在运行时出现。
那么,这样做的正确方法是什么?