Menu
Coddy logo textTech

Standart Hata

Coddy'nin Terminal Journey'sinin Temeller bölümünün bir parçası — ders 41 / 82.

Üçüncü ve son veri akışı standart hatadır ve stderr olarak kısaltılır. Bu akış, hata mesajları ve uyarılar için özel olarak tasarlanmıştır ve bunları normal çıktıdan ayrı tutar.

Bir komut başarısız olduğunda, hata mesajı standart hataya gider, standart çıktıya değil:

ls nonexistent_folder

Gördüğünüz hata mesajı stderr üzerinden gelir. Bu ayrım önemlidir çünkü hataları normal çıktıdan bağımsız olarak yönlendirebilirsiniz.

Standart hatayı yönlendirmek için 2> yerine > kullanın:

ls nonexistent_folder 2> errors.txt

2, stderr'nin dosya tanımlayıcı numarasını ifade eder (stdout 1'dir, stderr 2'dir). Bu komut hata mesajını errors.txt içine yakalarken terminalinizi temiz tutar.

Her iki akışı da farklı dosyalara yönlendirebilirsiniz:

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

Başarılı çıktı output.txt'ye giderken, hatalar errors.txt'ye gider. Her iki akışı da aynı dosyaya göndermek için 2>&1 kullanın:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

Bu, stderr'yi stdout'un gittiği yere yönlendirir ve her şeyi tek bir dosyada birleştirir.

challenge icon

Görev

Kolay

2> operatörünü kullanarak bir hata mesajını bir dosyaya yönlendirin. Bu iki komutu sırayla çalıştırın:

  1. ls kullanarak missing_folder adlı bir klasörü listelemeyi deneyin ve hata mesajını errors.txt adlı bir dosyaya yönlendirin
  2. errors.txt dosyasının içeriğini görüntülemek için cat kullanın

İpucu: Biçim ls foldername 2> filename'dir. Hata mesajı ekranda görünmek yerine dosyaya gider. Yakalandığını doğrulamak için cat kullanın.

Kopya kağıdı

Standart hata akışı (stderr), hata mesajları ve uyarılar için kullanılır; bunları normal çıktıdan ayrı tutar.

Standart hatayı yönlendirmek için 2> kullanın:

ls nonexistent_folder 2> errors.txt

2, stderr'nin dosya tanımlayıcı numarasını ifade eder (stdout 1'dir, stderr 2'dir).

stdout ve stderr'yi farklı dosyalara yönlendirebilirsiniz:

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

Her iki akışı da aynı dosyaya göndermek için 2>&1 kullanın:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

Kendin dene

Terminal
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler