SORU
4 EYLÜL 2009, Cuma


Bir bash betiği nasıl eğer belli bir durum oluşursa, tüm komut çıkış yapabilir miyim?

Bash bir komut dosyası kodu test etmek için yazıyorum. Ancak, eğer kod derleniyor ilk etapta başarısız olursa, testler saçma, sadece testleri iptal söylerim görünüyor.

Döngü içinde tüm senaryoyu sarma ve tatili kullanmadan bunu yapabilirim bir yolu var mı? Bir gibi bir şeydun dun dungoto?

CEVAP
4 EYLÜL 2009, Cuma


Kullanın-e ayarlayın

#!/bin/bash

set -e

/bin/command-that-fails
/bin/command-that-fails2

Komut dosyası başarısız olan ilk satırı (döner çıkış kodu sıfır) sonra sona erecektir. Bu durumdakomut--fails2çalışmayacak.

Eğer dönüş her komutun durumunu denetlemek için, komut dosyası, bu gibi görünecektir:

#!/bin/bash

# I'm assuming you're using make

cd /project-dir
make
if [[ $? -ne 0 ]] ; then
    exit 1
fi

cd /project-dir2
make
if [[ $? -ne 0 ]] ; then
    exit 1
fi

İle-e ayarlayıngibi görünecektir:

#!/bin/bash

set -e

cd /project-dir
make

cd /project-dir2
make

Başarısız herhangi bir komut tüm komut başarısız olmasına neden olabilir ve kontrol edebilirsiniz çıkış durumunu döndürür$?. Senaryonu çok uzun ya da çok şey inşa edersen, sana iade durumunu kontrol eder her yerde eklerseniz daha kötüye gidiyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Diogo Oliveira

    Diogo Olivei

    4 HAZİRAN 2006
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009