如果我尝试在Emacs Lisp函数中调用
rsync
(或scp
)多次运行shell命令,应该使用哪种shell命令变体?我目前正在使用shell-command
,它会在进程完成之前锁定Emacs,并且使用--verbose
参数的rsync
输出不会被打印出来。我可以在命令字符串的末尾使用&
使其异步执行,这会打印进度,但是虽然它没有完全"锁定" Emacs,但是minibuffer会反复询问是否要终止进程,这在此期间非常影响使用。另外一种方法是使用start-process-shell-command
,它似乎只有在传输第一个文件/目录后才会暂停函数;当通过我的函数进行多个rsync
调用时,将忽略其余的传输。这些都不是理想的方法,有什么提示吗?