Aşağıdaki komut neden çıkmıyor? Çıkıştan ziyade, döngü süresiz olarak çalışır.
Bu davranışı daha karmaşık bir kurulum kullanarak keşfetmiş olsam da, komutun en basit şekli aşağıdakilere indirgeniyor.
Çıkmaz:
while /usr/bin/true ; do echo "ok" | cat ; done | exit 1
Yukarıda yazım hatası yok. Her bir '|' bir borudur. 'Çıkış 1' çalıştırılan ve çıkan başka bir işlem anlamına gelir.
Ben "çıkış 1" while döngüde bir SIGPIPE neden (okuyucu olmadan bir boruya yazmak) ve döngü kopmasını bekliyoruz. Ancak, döngü çalışmaya devam eder.
Komut neden durmuyor?