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
本文介绍在Emacs编辑器中使用shell-command与shell-command-to-string函数在指定目录下运行Shell命令的方法。通过修改default-directory变量,可以轻松地改变工作目录,实现对不同目录下Shell命令的执行。
761

被折叠的 条评论
为什么被折叠?



