How do I get the output of the time bash command?

Anthony anthoq88 at gmail.com
Wed Jan 27 20:53:31 UTC 2021


On Wednesday, 27 January 2021 at 09:58:18 UTC, Arafel wrote:
> On 27/1/21 10:35, Anthony wrote:
>> 
>> I'm trying to read the timed output of a pipeShell command but 
>> it only results in empty output.
>> 
>> Does anyone know why this is?
>> 
>> 
>> ```
>>      auto p = pipeShell("time ls");
>> 
>>      foreach(str; p.stdout.byLine) {
>>          writefln("%s",str);
>>      }
>> ```
>
> I'm not sure why you get an empty output, you should get at 
> least the `ls` output unless it's an empty directory (or one 
> with only "dot" files).
>
> However, in any case `time` returns the timing information 
> through `stderr`, not `stdout`[1]. You can try [2,3] (untested):
>
> ```
> auto p = pipeShell("time ls", Redirect.stderrToStdout);
> ```
>
> Best,
>
> A.
>
> [1]: https://linux.die.net/man/1/time
> [2]: https://dlang.org/library/std/process/pipe_shell.html
> [3]: https://dlang.org/library/std/process/redirect.html

Thanks! I think this was the issue.
Turns out that pipeShell uses sh not bash so the "time" program 
isn't available.
When I printed stderr, it showed me the error.


More information about the Digitalmars-d-learn mailing list