Run a process, capture its output and exit code

アレックス

I know how to run an external process as there are many ways to do so. But how do I capture its output and exit code to the variables? These, the most popular ways of running a process, don't work as I want:

a = `ls -l` # "a" captures only output
b = system "ls -l " # "b" captures only exit code
Arup Rakshit

Here is a way to get this out.

#!/usr/bin/env ruby

require 'open3'

Open3.popen3("ls -l") do |stdin, stdout, stderr, wait_thr|
  puts stdout.read
  puts wait_thr.value.exitstatus 
end

# >> total 52
# >> -rw-r--r-- 1 arup users    0 Aug  5 09:32 a.rb
# >> drwxr-xr-x 2 arup users 4096 Jul 20 20:37 FSS
# >> drwxr-xr-x 2 arup users 4096 Jul 20 20:37 fss_dir
# >> -rw-r--r-- 1 arup users   42 Jul 19 01:36 out.txt
# .....
#...
# >> 0

Doco is very clear of ::popen3. stdout gives IO object. So, we need to use IO#read method. And wait_thr.value gives us Process::Status. Now once we have that object, we can use #exitstatus method for the same.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Capture exit code and output of a command

How to run external process in Scala and get both exit code and output?

bash shell - ssh remote script capture output and exit code?

Capture exit code of exit command

"Process finished with exit code 0" but desired output is not shown

no output/pwd print - zip cracker Process finished with exit code 0

Capture the output of a process in Julia

I get exit code "1", when run a process on IIS

How to run a process and get its output using c++ libboost?

Swift CLI: run process, display its output and allow user input

How to run SQL Server Agent Powershell script with output and exit code

Capture exit code of Expect script

How do I capture the exit code / handle errors correctly when using process substitution?

command || run code and exit

How can I capture the output of an external program that returns a non-zero exit code?

Capture Write-Host output and exit code from Invoke-Command on a Remote System

Getting Exit Code (1) Error and Output in Error output using Process in Symfony

Capture the output while terminating a process

Java capture process output with color

Pipe output and capture exit status in Bash

How to capture return code (not exit code)

Capture output of a command, process it and ONLY then output to terminal

Capture the output of a program run in Docker

Exit Shell Script Based on Process Exit Code

Exit nightwatch cucumber process with exit code 0?

How do I run a command and get its exit code in fewer characters?

If errexit is on, how do I run a command that might fail and get its exit code?

Getting exit code of a terminated process

Process finished with exit code 139

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive