'da başarısız olursa false değerini döndürür Bir dizi bundle exec rspec komutu yürütecek bir betik ayarlıyorum ve bunlardan herhangi biri başarısız olursa false döndürmesini istiyorum. Ama hala tüm testleri yürütmesini istiyorum. Bir ya da test ifadesi olmadan bunu başarmanın daha kısa bir yolu var mı?Çoklu bash komutlarını çalıştırın ve bunlardan biri bash
2
A
cevap
-1
Çıkış kodlarını bir değişkende takip edin ve ondan çıkın. Ne kırdı sorun giderme için satır numarasını ekledim.
declare -i r_code=0 # return code
command1 || { r_code+=$?; echo "ERROR at $LINENO
}
command2 || { r_code+=$?; echo "ERROR at $LINENO
}
exit $r_code
+0
@ jgr208 tam olarak doğru değil - eğer tüm komutlar hatalarınızı kaydeden işlevler ise, ihtiyacınız olan tüm bilgilere sahip olursunuz. OP, onun için tüm senaryoyu tasarlamaya değil, hatalarla çıkmayı istedi ve daha fazla bilgi verilemedi. – SaintHax
-1
Bu, tüm dönüş kodları geçmesi ve edecek döngü için bir ilk görüldüğü başarısız dönüş koduyla çıkılacak başarısız biri eğer.
i=0
rc=0
command1
rcode[i]=$?
i=i+1
command2
rcode[i]=$? ... n
for i in "${rcode}"
do
if [ $i -ne 0 ]; then
rc=$i
break
fi
done
exit $rc
İlgili konular
- 1. çalıştırın Bash Komuta PHP
- 2. Getopts (bash) kullanarak çoklu seçenek argümanları (bash)
- 3. CocoaPod post_install adımında bash komutunu çalıştırın
- 4. Bash & I bash kabuğunda paralel olarak 3 komutları çalıştırın çalışıyorum
- 5. Bash komutlarını nasıl çalıştırırım ve çıktıları Java'dan nasıl alırım?
- 6. Javada, bunlardan biri sinyal verilinceye kadar çoklu `Koşullar 'beklemek nasıl
- 7. Bash kabuğu ve Bash terminali arasındaki fark?
- 8. bash komutu
- 9. bash pipestatus? Bash içinde
- 10. BASH
- 11. Bash
- 12. , bash
- 13. bash
- 14. Bash
- 15. bash
- 16. bash
- 17. bash
- 18. Bash
- 19. Bash
- 20. Bash
- 21. Bash
- 22. Bash
- 23. Bash
- 24. Bash
- 25. Bash
- 26. 'Bash'
- 27. BASH
- 28. bash
- 29. bash,
- 30. bash
Şimdiye kadar neler var? tek düşünebildiğim şey, tüm $ $ dönüş kodlarının bir dizisine sahip olması ve script döngüsünün sonunda ve herhangi bir dönüş kodunun 0'a eşit olmaması durumunda, false'yi false olarak ayarlamak ve betikten çıkmak ve çıkmak. – jgr208