Bu kabuğa bağımlı ve belgelenmemiş AFAICS. Gelen ksh
ve bash
, birinci durumda, foo
aynı Stdin paylaşacak bar
. Çıkışı için savaşacaklar echo
.
Örneğin,
$ seq 10000 | paste - <(tr 1 X)'
1 X
2 X042
3 X043
4 X044
5 X045
[...]
paste
Diğerlerini okurken, diğer tüm metin bloklarını seq
çıktılarından okuyan kanıtlar görürsünüz tr
.
İle zsh
, dış stdin'i alır (bir terminal değilse ve kabuk etkileşimli değilse, bu durumda yönlendirilir /dev/null
). ksh
(kaynaklandığı yerde) zsh
ve bash
proses ikamesi AFAIK'i destekleyen tek Bourne benzeri kabuklardır.
In echo "bla" | bar < <(foo)
, not bar
's stdin çıkış tarafından beslenen boru olacak foo
. Bu iyi tanımlanmış bir davranış. Bu durumda, görünür foo
bireyin Stdin beslenen boru echo
tümünde ksh
, zsh
ve bash
.
Her üç mermide de tutarlı bir davranışa sahip olmak ve geleceği kanıtlamak istiyorsanız, davranış belgelenmediği için değişebileceğinden, bunu yazarım:
echo bla | { bar <(foo); }
Emin olmak için foo
stdin de bir borudur echo
(neden bunu yapmak istediğinizi anlayamıyorum). Veya:
echo bla | bar <(foo < /dev/null)
Yapmak için emin foo
gelmez değil gelen boru okunan echo
. Veya:
{ echo bla | bar 3<&- <(foo <&3); } 3<&0
foo
'Nin güncel versiyonlarında olduğu gibi dış stdin' e sahip olmak zsh
.