Evet, stderr
yanlış bağımsız değişkenler kullanıldığında bir mesaj görüntüleyin . Bu da uygulamanın çıkmasına neden oluyorsa, sıfır olmayan çıkış durumuyla çıkın.
Tanılama iletileri veya kullanıcı etkileşimi için standart hata akışını kullanmalısınız . Teşhis mesajları, doğru çalıştığında yardımcı programın çıkışının bir parçası olmayan hata mesajlarını, uyarıları ve diğer mesajları içerir ("doğru", yani dosyalar bulunamaması veya ne olursa olsun istisnai bir şey olmadığı anlamına gelir).
Birçok kabuk (tümü?) stderr
, Yönlendirmeleri stdout
, kabukla anlamlı bir şekilde etkileşime girmenizi engellemeyecek şekilde istemleri, kullanıcı türlerini ve menüleri vb . Görüntüler.
Bu konuyla ilgili bir blog yayınından aşağıdakiler :
Bu, Unix borularının mucidi Doug McIllroy'un nasıl olduğunu açıklayan bir alıntı stderr
. 'v6', orijinal Unix işletim sisteminin 1975'te piyasaya sürülen belirli bir sürümüne atıfta bulunuyor.
Tüm programlar standart çıktıya teşhis koydu. Bu, çıktı bir dosyaya yönlendirildiğinde her zaman soruna neden olmuştu, ancak çıktı şüpheli olmayan bir sürece gönderildiğinde dayanılmaz hale geldi. Bununla birlikte, standart-girdi-standart-çıktı modelinin basitliğini ihlal etmek istemeyen insanlar, v6 aracılığıyla bu durumu tolere ettiler. Kısa süre sonra Dennis Ritchie, standart hata dosyasını tanıtarak Gordian düğümünü kesti. Bu yeterli değildi. Boru hatları ile tanılama, aynı anda çalışan birkaç programdan herhangi birinden gelebilir. Kendilerini tanımlamak için teşhis gerekli.
- Doug McIllroy, "Bir Araştırma UNIX Okuyucu: Programcı El Kitabından Ek Açıklamalar, 1971-1986"
"Kendini tanımlamak" demek, basitçe "Hey! Konuşuyorum! Bu yanlış gitti: [...]":
$ ls nothere
ls: nothere: No such file or directory
Bunu yapmak stderr
tercih edilir, çünkü aksi halde ne okuyorsa okunabilir stdout
(ama bunu ls
yine de yapmıyoruz, değil mi?).