Hi Zelphir, I think you want to be using the popen / pipe procedures for this. See https://www.gnu.org/software/guile/docs/docs-2.2/guile-ref/Pipes.html for the chapter in the manual. Hope this helps :) Alex Zelphir Kaltstahl writes: > Corrections below. > > On 2/22/22 10:29, Zelphir Kaltstahl wrote: >> Hello Guile users! >> >> How would I run a shell command from inside Guile and get its output >> as a string, instead of the output being outputted directly? (Guile >> 3.0.8) >> >> So far I have found >> >> ~~~~ >> (system ...) >> ~~~~ >> >> which I tried to use with >> >> ~~~~ >> scheme@(guile-user)> (with-output-to-string >>   (system "ls -al")) >> >> ;; lots of output immediately shown and not stored in variable >> >> ice-9/boot-9.scm:1685:16: In procedure raise-exception: >> Wrong type to apply: 0 >> >> Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue. >> scheme@(guile-user) [1]> ,bt >> In ice-9/ports.scm: >>     476:4  2 (with-output-to-string 0) >> While executing meta-command: >> In procedure frame-local-ref: Argument 2 out of range: 1 >> ~~~~ >> >> But this does not give me a string back. >> >> I also tried with >> >> ~~~~ >> scheme@(guile-user)> (call-with-values (lambda () (system "ls -al")) >> ... (lambda (exit-code output) output)) >> >> ;; lots of output immediately shown >> >> ice-9/boot-9.scm:1685:16: In procedure raise-exception: >> Wrong number of values returned to continuation (expected 2) >> >> Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue. >> >> scheme@(guile-user) [1]> ,bt >> In current input: >>     10:29  1 (_) >> In ice-9/boot-9.scm: >>   1685:16  0 (raise-exception _ #:continuable? _) >> ~~~~ >> >> Is there another function I should be using? >> >> I would like to have the exit code and the output of a command. >> >> Best regards, >> Zelphir > > Of course I should use `with-output-to-string` correctly: > > ~~~~ > scheme@(guile-user)> (with-output-to-string > (lambda () (system "ls -al"))) > ;; directly outputted stuff > $1 = "" > ~~~~ > > But still not a win. > > Regards, > Zelphir