Почему команда исходного кода не работает с подстановкой процессов в bash 3.2?

У меня есть следующий сценарий оболочки:

cat <(echo foo)
source <(echo bar=bar)
echo $bar

Однако в GNU bash 3.2 и 4.3 это работает по-разному, как показано ниже:

$ /bin/bash foo.sh 
foo

3.2.53(1)-release

$ /usr/local/bin/bash foo.sh 
foo
bar
4.3.33(1)-release

Почему это работает только на одной версии? Это ошибка или добавленная функция?

Кажется, процесс замены работает нормально, однако проблема заключается в поиске файла.

Если это ожидаемое поведение, какой другой синтаксис я должен использовать вместоsource что-то из стандартного ввода для совместимости между разными версиями bash?

Ответы на вопрос(1)

Ваш ответ на вопрос