gpt4 book ai didi

ruby - 如何获取使用 IO.popen 调用的命令的退出状态?

转载 作者:数据小太阳 更新时间:2023-10-29 06:49:32 26 4
gpt4 key购买 nike

我正在使用 IO.popen 执行命令并像这样捕获输出:

process = IO.popen("sudo -u service_user -i start_service.sh") do |io|
while line = io.gets
line.chomp!
process_log_line(line)
end
end

如何捕获 *start_service.sh* 的退出状态?

最佳答案

您可以通过引用 $? 捕获通过 IO.open() 调用的命令的退出状态,只要您关闭了 block 末尾的管道即可。

在上面的例子中,你会这样做:

  process = IO.popen("sudo -u service_user -i start_service.sh") do |io|
while line = io.gets
line.chomp!
process_log_line(line)
end
io.close
do_more_stuff if $?.to_i == 0
end

参见 Ruby Core Library entry for IO.popen获取更多信息。

关于ruby - 如何获取使用 IO.popen 调用的命令的退出状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350307/

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