./bar < <( ./foo )
Ví dụ: cat < <(echo "hello there!")
Để hiểu cách thức hoạt động của nó, hãy xem xét các phần của tập lệnh một cách riêng biệt.
Cú pháp này: cat < /path/to/file
sẽ đọc tệp /path/to/file
và chuyển nó thành stdin tới cat
.
Cú pháp này: <(echo "hello there!")
có nghĩa là thực thi lệnh và đính kèm thiết bị xuất chuẩn vào một mô tả tệp như thế nào /dev/fd/65
. Kết quả của toàn bộ biểu thức là một văn bản như thế /dev/fd/65
, và một lệnh chạy song song và cung cấp cho bộ mô tả tệp đó.
Bây giờ, kết hợp lại, tập lệnh sẽ chạy lệnh bên phải, chuyển nó thành một bộ mô tả tệp, chuyển đổi bộ mô tả tệp đó thành stdin cho lệnh bên trái và thực hiện lệnh bên trái.
Không có chi phí mà tôi biết, nó hoàn toàn giống như a | b
, chỉ là đường cú pháp.
./bar <(./foo)