Вы все еще можете читать из файлового дескриптора. Проблема в том, что вы используете системный вызов «dup2», чтобы сделать вторую ссылку на файловый дескриптор, а файловый дескриптор имеет позицию. После вашей первой кошки позиция будет в конце данных. Вы можете читать данные понемногу (здесь я использую read
в качестве примера для чтения строки за раз, обычно вы бы использовали read -r), и я использую perl как простой способ чтобы перемотать позицию к началу файла.
$ exec 3<<<'This is some text
> and some more
> that is all folks'
$ read <&3 ; echo "$REPLY"
This is some text
$ read <&3 ; echo "$REPLY"
and some more
$ perl -e 'sysseek(stdin,0,0);' <&3
$ read <&3 ; echo "$REPLY"
This is some text
Каким-то образом все было мягко заблокировано. Решение:
$ rfkill unblock all