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

时间:2015-09-21 16:41:11

标签: ruby capistrano sshkit

SSHkit-Github上,它说:

  

所有后端都支持执行(* args),test(* args)&捕捉(*参数)

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

Capistrano / SSHKit 中的testexecutecapture之间的区别是什么?我应该何时使用?

1 个答案:

答案 0 :(得分:8)

<强>执行 只是执行命令。 非0退出会引发错误。

<强>测试 方法与execute完全相同但是如果命令以true出口退出,则返回布尔值{0,否则返回false。它通常用于任务中的控制流程。

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