天天看點

Emacs中如何在指定目錄下運作shell指令

原文位址:https://raw.githubusercontent.com/lujun9972/lujun9972.github.com/source/Emacs之怒/Emacs中如何在指定目錄下運作shell指令.org

shell-command

shell-comand-to-string

可以用來在Emacs中運作shell指令,這兩個函數都會自動根據shell指令是否以

&

結尾來自動同步/異步排程shell指令。

這兩個指令的不同點在于:

  • shell-command

    将shell指令的輸出結果寫入到新的buffer中
  • shell-command-to-string

    則将輸出結果作為字元串傳回

這兩個指令内部都調用

call-process

,是以會将

default-directory

的值作為shell指令的工作目錄(詳細說明可以參見

call-process

的說明).

是以,Emacs中在指定目錄下運作shell指令隻需要在

let

中臨時修改

default-directory

的值就行了,像這樣

(let ((default-directory "/tmp"))
  (shell-command-to-string "pwd"))
      
/tmp