0Pricing
DevOps Bootcamp · Ders

Hata İşleme ve Çıkış Durumu

Çıkış durumlarını anlayarak ve 'set -e' ile koşullu mantığı kullanarak betiklerinizde sağlam hata denetimi uygulayın.

Hata İşleme ve Çıkış Durumu, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

Hata İşleme Konusuna Hoş Geldiniz

Bu derste, hataları etkili bir şekilde nasıl ele alacağınızı öğrenerek Bash betiklerinizi daha sağlam hâle getireceksiniz.

Birçok adım gerçekleştiren bir betik düşünün. Adımlardan biri başarısız olursa betiğinizin durmasını veya en azından başarısızlıktan haberdar olmanızı istersiniz, değil mi? Hata işleme tam da bu noktada devreye girer!

Çıkış Durumu Nedir?

Linux kabuğunda çalıştırdığınız her komut bir çıkış durumu (bazen çıkış kodu veya dönüş kodu olarak da adlandırılır) döndürür.

  • 0 durumu, komutun başarıyla tamamlandığı anlamına gelir.
  • Sıfır olmayan bir durum (örneğin 1, 2, 127), bir tür başarısızlık veya hata olduğunu belirtir.

Bu, komutlarınız için bir trafik ışığı gibidir!

Çıkış Durumunu Elle Denetleme

Son çalıştırılan komutun çıkış durumunu özel $? değişkenini kullanarak denetleyebilirsiniz.

Başarılı ve başarısız bir komutu deneyelim:

#!/bin/bash

echo "Hello CoddyKit"
echo "Exit status: $?"

ls non_existent_file.txt
echo "Exit status: $?"

Temel Koşullu Hata Denetimi

Çıkış durumunu bilmek, betiğinizin kararlar almasını sağlar. $? değerini denetlemek ve hatalara tepki vermek için bir if ifadesi kullanabilirsiniz.

Bu, betiğinizin sorunlardan haberdar olmasını sağlar ve geçersiz verilerle devam etmesini önler.

#!/bin/bash

ls non_existent_file.txt

if [ $? -ne 0 ]; then
  echo "Error: The 'ls' command failed!"
  exit 1 # Exit script with an error code
fi

echo "This line will not run if 'ls' fails."

`set -e` Gücü

Her komuttan sonra $? değerini elle denetlemek yorucu olabilir. İşte set -e bu noktada kullanışlı olur!

Bir betiği set -e ile başlattığınızda Bash, herhangi bir komut (koşullu bir denetimin parçası olmayan) sıfır olmayan bir durumla sonlanırsa hemen çıkar.

Bu, betikleriniz için genel bir güvenlik anahtarıdır!

Eylem Hâlinde `set -e`

set -e'in bir hatadan sonra betiğin devam etmesini nasıl önlediğini görelim. Son echo komutuna hiçbir zaman ulaşılmadığına dikkat edin.

#!/bin/bash
set -e

echo "Starting important tasks..."

# This command will fail
cp /non_existent_source /tmp/destination

echo "This line will NOT be printed if 'cp' fails."
echo "All tasks completed successfully."

`set -e` Ne Zaman Durmaz?

set -e güçlüdür ancak belirli kuralları vardır. Başarısız komut şu durumlardan birindeyse betiğin çıkmasına neden olmaz:

  • Bir if veya while koşulunun parçasıysa.
  • Bir && veya || listesinin parçasıysa (son komut hariç).
  • Önünde ! varsa.

Bu bağlamlar başarıyı/başarısızlığı denetlemek için tasarlanmıştır; bu nedenle `set -e` bunlara müdahale etmez.

`set -e` ile `||` Birleşimi

Bazen çıkmadan önce özel bir hata mesajı göstermek isteyebilirsiniz. set -e ile || (OR) işleçini birleştirebilirsiniz.

command || { echo "Error message"; exit 1; }

command başarısız olursa || işaretinden sonraki bölüm çalışır, mesajınızı yazdırır ve ardından belirli bir hata koduyla çıkar.

#!/bin/bash
set -e

echo "Attempting to find a file..."

find /non_existent_dir -name "*.txt" || \
  { echo "ERROR: Could not search in /non_existent_dir!"; exit 1; }

echo "Script continued (this won't print if 'find' fails)."

Belirli Çıkış Kodlarını Ele Alma

0 başarı, sıfır olmayan değerler başarısızlık anlamına gelir; ancak belirli sıfır olmayan kodların farklı anlamları olabilir.

  • 1: Genel hata.
  • 2: Kabuğun yerleşik komutlarının yanlış kullanımı.
  • 127: Komut bulunamadı.

Belirli başarısızlık türlerini denetlemek ve daha uygun hata bilgileri sunmak için if [ $? -eq 127 ] kullanabilirsiniz.

Hata İşleme Sınavı

Aşağıdaki ifadelerden hangisi Bash çıkış durumları ve hata işleme hakkında doğrudur?

Özet: Sağlam Betikler

Bash betiklerinizi çok daha güvenilir hâle getirmeyi öğrendiniz!

  • Her komut bir çıkış durumu döndürür (başarı için 0, başarısızlık için sıfır olmayan değer).
  • $? değişkeni, son komutun çıkış durumunu verir.
  • set -e, çoğu komut başarısızlığında betiğinizden otomatik olarak çıkmanızı sağlayan güçlü bir araçtır.
  • Özel hata mesajları için set -e ile || ifadesini birleştirin.

Bu teknikleri kullanmak, daha profesyonel ve kararlı betikler yazmanıza yardımcı olacaktır.

Sıkça Sorulan Sorular

“Hata İşleme ve Çıkış Durumu” dersi ücretsiz mi?

Evet — “Hata İşleme ve Çıkış Durumu” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

“Hata İşleme ve Çıkış Durumu” dersinde ne öğreneceğim?

Çıkış durumlarını anlayarak ve 'set -e' ile koşullu mantığı kullanarak betiklerinizde sağlam hata denetimi uygulayın. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Hata İşleme ve Çıkış Durumu” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Bash Betiklerinde Hata Ayıklama (set -x, trap)
  2. Hata İşleme ve Çıkış Durumu
  3. Betik Yazımında En İyi Uygulamalar ve Lint Denetimi
  4. Bash Betiklerini Bats ile Sınama
← DevOps Bootcamp Sayfasına Dön