Emacs Lisp - 如何将 `&&` 提交给 shell?

3

我想用&&连接一些shell命令,例如:

wget -c http://repository/file.tar.gz && tar -xzvf file.tar.gz && rm file.tar.gz

通常我会使用 start-process,但是这个函数似乎被 && 搞混了。我可以按顺序运行这三个命令,但在这种情况下以及许多其他情况下,我希望确保第一个命令在执行第二个命令之前没有因错误而中止,等等。
Python 的 subprocess.call 函数有一个 shell=True 参数,您可以通过它发送整个行 - Emacs Lisp 中是否有这样的函数?在这种情况下,我应该寻找另一个解决方法吗?

你可以尝试使用更简单的命令进行测试,例如 echo 1 && echo 2 && echo 3。我建议尝试转义 '&' 符号,例如 \&\&。祝好运。 - shellter
我认为问题在于&&;没有被识别为调用process的参数... - hatmatrix
m0skit0:如果你建议使用;而不是&&,那么这是不好的,因为它们在语义上是不同的。当你使用&&时,你确保仅当所有先前的命令都成功执行时才执行序列中的每个命令。YMMV,但我知道我极少想要;,在这个问题的示例中肯定不想使用; - phils
1个回答

2
您可能想要使用shell-command

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接