Beklediğim cat <(cat)
ve cat | cat
aynı şeyi yapmak: stdin stdout satırları kopyalayın. Anladığım kadarıyla, her ikisi de cat
bir alt kabukta a yürütecek , alt kabuğun stdout'unu cat
geçici bir adlandırılmış boruya yönlendirecek ve daha sonra cat
mevcut kabukta başka bir parçayı boruya yönlendirilmiş olacaktı.
Bunun yerine, cat <(cat)
terminalime yazmama izin verin, ancak giriş satırlarının hiçbiri kopyalanmaz ve ^D
sinyal veremez EOF
; cat | cat
beklendiği gibi çalışıyor.
Başka bir deney cat =(cat)
olarak cat <(cat)
, benzer zorluklara sahip olup olmadığını kontrol ettim , ancak beklediğim gibi çalışıyor: ^D
bir seferde tüm stdin , bir seferde stdout'a kopyalanıyor.
Herkes kaputun altında zsh ne yaptığını anlamama yardımcı olabilir mi?