Not, bu bir bash cevabıdır, zsh değil.
Bash'da boru kullanamayacağınız durumlar var:
some_command | some_other_command
borular, boru hattının her bir bileşeni için alt kabuklar ürettiğinden, alt kabuklar çıktığında, güvendiğiniz herhangi bir yan etki ortadan kalkacaktır. Örneğin, bu bağlamda verilen örnek:
cat file | while read line; do ((count++)); done
echo $count
$count
değişken, mevcut kabukta bulunmadığından boş bir satır görüntüler .
Bir bash işlemi ikamesi , bir dosyadan yaptığınız gibi "some_command" çıktısını okumanızı sağlayarak bu sıkıntıdan kaçınmanıza izin verir
while read line; do ((count++)); done < <(cat file)
# ....................................1.2
echo $count # the variable *does* exist in the current shell
(1) normal bir giriş yönlendirmesidir. (2), <()
işlem ikame sözdiziminin başlangıcıdır .
pfctl -f <(echo "pf rules")
hatalı dosya tanımlayıcısı diyeceğini anlamama yardımcı oldu . zsh ve = (echo "pf rules") kullanarak bunun yerine çalışır.