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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |