gpt4 book ai didi

ruby - 从ruby脚本运行shell命令并失败的shell命令错误的优雅方法

转载 作者:行者123 更新时间:2023-12-03 08:56:29 28 4
gpt4 key购买 nike

我知道这样的事情是可能的

out = `echo 1`
$?.to_i == 0 or raise “Failed"

但是我无法合并这2条语句,因此如果shell命令返回错误,输出将被捕获到变量中,并且命令将失败(也将打印捕获的输出)。

如果可能,最好分成1行。就像是
out = `echo 1` && $?.to_i == 0 or raise “Failed. Output:” + out

更漂亮。

最佳答案

查看Open3类。它有许多方法可以让您做自己想做的事情。

特别是,capture2与您正在执行的操作最接近。从文档:

::capture2 captures the standard output of a command.


stdout_str, status = Open3.capture2([env,] cmd... [, opts])

请注意该可选的 env参数。否则,您的被调用应用程序将没有环境信息,因此您可能需要考虑传入 ENV哈希,从而使子代具有与正在运行的代码相同的环境设置。如果要限制传递的内容,则可以有选择地将键/值对添加到哈希中,或者使用 ENV.dup然后 delete选择键/值对。

关于ruby - 从ruby脚本运行shell命令并失败的shell命令错误的优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635998/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com