Python的调用可能会失败,subprocess.check_call
和subprocess.check_output
子进程提供了两个方便的功能。基本上,红宝石相当于Python的subprocess.check_call的/ check_output
subprocess.check_call(['command', 'arg1', ...])
产卵指定的命令作为子进程,块,和验证子过程成功结束(返回零)。如果不是,则会引发异常。 check_output
做同样的事情,除了它捕获子进程的标准输出并将其作为字节字符串返回。
这很方便,因为它是一个单独的Python表达式(您不必在几行代码中设置和控制子进程),并且没有遗漏检查返回值的风险。
什么是check_call
和check_output
的惯用Ruby等价物?我知道$?
global可以给出进程的返回值,但那会很尴尬 - 有例外的一点是您不必手动检查错误代码。 There are numerous ways to spawn a subprocess in Ruby,但我没有看到任何提供此功能的内容。