2012-03-16 50 views
5

我想編寫一個包裝現有命令行腳本的eshell函數。爲了做到這一點,我希望能夠從一個eshell函數執行一個shell命令。我的第一反應是像做emacs * eshell *中「exec」的等價物?

(defn eshell/myfunc() 
    (shell-command "mycommand")) 

排序作品,除少數問題。它運行在一個較低級的shell中,而不是像真正的「exec」命令那樣運行。這意味着,除了別的以外,eshell中的命令「myfunc」在命令運行時似乎阻塞。 「mycommand」的輸出收集後會出現在Shell輸出緩衝區中,但不會複製標準輸出在運行時出現的正常shell函數的行爲。

那麼,做到這一點的正確方法是什麼?

回答