[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Undocumented feature: Unnamed fifo '<(:)'

From: Greg Wooledge
Subject: Re: Undocumented feature: Unnamed fifo '<(:)'
Date: Mon, 29 Jun 2020 09:00:28 -0400
User-agent: Mutt/1.10.1 (2018-07-13)

On Sun, Jun 28, 2020 at 03:49:45PM +0200, felix wrote:
> Bash Versions: 3.2.57(1)-release, 5.0.3(1)-release, 5.1.0(1)-alpha
> In order to reduce forks and make some tasks a lot quicker, I run
> forked filters as background tasks, with dedicated I/O fd.

As Pierre already suggested, you appear to be reinventing the coproc.
If you really are targeting bash 3.2, which doesn't have the coproc
feature, then OK, go you.  If you aren't targeting bash 3.2, but simply
noted that your code happened to "work" in even that ancient version,
then you should just use the coproc feature instead.

Your problem description is also covered by
<https://mywiki.wooledge.org/BashFAQ/107>.  You should at least look
over that page and see if it helps you.

If you don't want to timestamp a stream, but instead, actually want to
fetch the wall-clock time repeatedly in a bash script for some reason,
and if you are targeting bash 4.2 or newer, you can use

printf -v var '%(...)T' -1

which will not fork.  But this seems like an unusual goal.

If the *actual* goal is something like "measure the time taken by a
specific set of commands", and you thought that fetching the wall-clock
time twice and subtracting them was the way to go, I strongly suggest
that you use bash's "time" command instead.  Use the TIMEFORMAT variable
to get the specific output format that you want.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]