[Top][All Lists]

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

process substitution bug or difference from bash 4.4

From: Valentin Lab
Subject: process substitution bug or difference from bash 4.4
Date: Wed, 25 Mar 2020 15:35:57 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1


I have encountered an issue when running some bash code from 4.4 on a bash 5 ... I've managed to pinpoint the exact issue on my end.

Here are 2 functions that are quite similar, except the usage of "{ ; }" around the "cat":

## ----------------
ouch() {
    cat < <(echo bar)
    cat "$1"

ouch2() {
    { cat; } < <(echo bar)
    cat "$1"

Runnning this will give the same output on bash 4.4 and 5:

$ ouch <(echo "foo")

And by replacing "ouch" by "ouch2", I have the same output in bash 4.4 .

But running it on bash 5 will fail:

$ ouch2 <(echo "foo")
cat: /dev/fd/63: No such file or directory

Is that expected ? I'd be happy to know about the rationale behind this (and the change) if this is expected.

Many thanks,

Valentin Lab

reply via email to

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