Capistrano 中的执行、测试和捕获命令有什么区别?

What is the difference between execute, test and capture commands in Capistrano?

SSHkit-Github 上说:

All backends support the execute(*args), test(*args) & capture(*args)

SSHkit-Rubydoc,我了解到execute实际上是test的别名?

Capistrano/SSHKit[=26=中的testexecutecapture有什么区别] 我应该什么时候使用?

执行 只是执行命令。 使用非 0 退出引发错误。

测试 方法的行为与 execute 完全相同,但是它 return 是布尔值(true 如果命令以 0 退出,而 false 否则)。它通常用于控制任务中的流程。

捕获 方法将在第一个匹配的服务器上执行命令,并将 return 命令的 stdout 输出作为字符串。 stderr 输出将被忽略(使用 ls 2>&1 将 stderr 重定向到 stdout)。 使用非 0 退出引发错误。