Comment by Izkata

2 hours ago

> and have that string be populated with the "some" command output. but then we also need to capture stderr and the exit value, so we actually need to capture three return values.

I haven't used Red, but assuming this part works like Rebol, this works with different refinements. Create empty strings (which are mutable) and pass them in as extra args to populate them:

  stdout: {}
  stderr: {}
  exitcode: call/output/error {some command --with arguments} stdout stderr

That command string is passed to a shell so pipes/etc work within it. Don't remember how it picks the shell so no idea what would happen if Red/Rebol was set as your shell.