加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:23:05 所属栏目:百科 来源:网络整理
导读:我正在使用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.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()调用的命令的退出状态.只要您在块的末尾关闭了管道.

在上面的示例中,您将执行以下操作:

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读