bug-bash
[Top][All Lists]
Advanced

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

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


From: Oğuz
Subject: Re: Undocumented feature: Unnamed fifo '<(:)'
Date: Sun, 28 Jun 2020 19:31:53 +0300

28 Haziran 2020 Pazar tarihinde felix <felix@f-hauri.ch> yazdı:

> Machine: x86_64
> OS: linux-gnu
> Compiler: gcc
> Compilation CFLAGS: -g -O2 -fdebug-prefix-map=/build/bash-2bxm7h/bash-5.0=.
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-parentheses -Wno-format-security
> uname output: Linux medium 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2
> (2020-04-29) x86_64 GNU/Linux
> Machine Type: x86_64-pc-linux-gnu
>
> 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.
>
> For sample, to convert human datetime to UNIX SECONDS, instead of running
>    _out=$(date -d "$_string" +%s)
> many time in same script, I run something like:
>
>     _fifo=$(mktemp -u /tmp/fifo-XXXXXXXX)
>     mkfifo $_fifo
>     exec 9> >(exec stdbuf -o0 date -f - +%s >$_fifo 2>&1)
>     exec 8<$_fifo
>     rm $_fifo
>
> Then to convert human datetime to UNIX SECONDS:
>
>         echo >&9 $_string
>         read -t 1 -u 8 _out
>
> become a lot quicker!
>
> But I recently discovered another way for this:
>
>     exec 8<> <(:)
>     exec 9> >(exec stdbuf -o0 date -f - +%s >&8 2>&8)
>
> usable in same way:
>
>         echo >&9 $_string
>         read -t 1 -u 8 _out
>
> maybe a little more quicker...


Seems like a bug to me. The FIFO created for <(:) shouldn't be writable.


>
> This was tested using https://f-hauri.ch/vrac/date1fork-demo.sh under
> latest version of bash: 5.1.0(1), debian stable version: 5.0.3(1) and
> old 3.2: 3.2.57(1).
>
> There is maybe something to document or even create a new feature
> about open2 and open3...
>
> (I will have to rewrite https://f-hauri.ch/vrac/shell_connector.sh.txt ;)
>
> --
>  Félix Hauri  -  <felix@f-hauri.ch>  -  http://www.f-hauri.ch
>
>

-- 
Oğuz


reply via email to

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