Предоставленные ответы содержат полезную информацию и дают представление о процессе, который я считаю очень важным (особенно для авто -дидактических типов, которые описывают многих из нас здесь, в SE ).
Тем не менее, есть бесплатный проект, который более или менее достигает чего-то подобного для тех, кто приходит сюда и просто хочет сделать что-то подобное, если не то же самое.
https://www.pendrivelinux.com/yumi-multiboot-usb-creator/
Имя глупое. Графика сырная. Инструменты работают, и работают очень хорошо. По крайней мере, исходный код, который они предоставляют, может вам помочь.
Ваш вопрос не совсем ясен. Но я предполагаю, что у вас есть команда с именем x
, которая делает что-то вроде:
cat "$1"
one=$(cat "$1")
Теперь, когда вы выполняете x <(echo "foo")
, вы получаете сообщение об ошибке.
Теперь это из-за того, как работает структура <(...)
.
По сути, он запускается echo foo
и соединяет его вывод с дескриптором временного файла (/dev/fd/63
), а затем передает его в качестве параметра.
Теперь ваша первая команда cat
считывает весь ввод. Это означает, что входных данных не осталось. Таким образом, вашей второй командеcat
нечего читать. И вы получаете сообщение об ошибке, потому что процесс echo
завершился и нет открытого дескриптора для чтения.
В простой форме вы сделали специальную версию
echo "foo" | {
cat
one=$(cat)
}
но с умной магией обработки файлов.