Почему команда исходного кода не работает с подстановкой процессов в 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?