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

  • Liberator

    Liberator

    14 EYLÜL 2007
  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • SamsTech

    SamsTech

    4 NİSAN 2014