Etkileşimli bir bash kabuğuna set -e
girildikten sonra, herhangi bir komut sıfırdan farklı olarak çıkarsa, bash hemen çıkacaktır. Bu efekti nasıl geri alabilirim?Herhangi bir komut başarısız olursa, bash çıkışını hemen belirleyen "set -e" efektinin nasıl geri alınacağı
cevap
set +e
ile. Evet, kabuk seçeneklerinin set -
ve 'u set +
ile devre dışı bıraktığından geriye doğrudur. Tarihsel kuru üzüm, donchanow. yerine + kullanıldığında
- - Bu bayraklar kapatılabilir neden olur.
O set +e
/set -e
bunu geçersiz kılmak istediğiniz her zaman kullanmak unhandy olabilir. Daha basit bir çözüm buldum. Eğer tuş vuruşlarını kaydetmek istediğiniz ve şifreli biraz olmanın sakıncası yoksa,
command_that_might_fail_but_we_want_to_ignore_it || true
ya:
yerine bunu böyle yapmanın:
set +e
command_that_might_fail_but_we_want_to_ignore_it
set -e
bunu şöyle yapabilirsiniz:
command_that_might_fail_but_we_want_to_ignore_it || :
Bu yardımcı olur umarız!
': 'tarihini merak ediyordum ve cevabımı buldum [here] (http://stackoverflow.com/a/3224910/1094541), başka birinin merak ettiği durumda. – 3cheesewheel
Bu, yalnızca, çalıştırmakta olduğunuz komutun dönüş kodunu almazsanız geçerlidir. – Isaac
- 1. set -e ve arkaplan işlemi
- 2. -e seçeneği ayarlandığında bir bash komut dosyasının başarısız olmasından nasıl kaçınılır?
- 3. Bir PHP PDO işlemi başarısız olursa, açıkça() geri almalı mıyım?
- 4. SQL Server'da bir işlem başarısız olursa tetikleyiciler geri alınır mı?
- 5. nasıl basit bir senaryomuz var Bash
- 6. Bash betiği durduğunda komut çalıştır
- 7. Bash Komut Dosyası Geri Dönme Yerine Döngü
- 8. nasıl herhangi bir komut
- 9. CMakeLists.txt: Ctest başarısız olursa nasıl mesaj yazdırılır?
- 10. Bir shared_ptr'nin yapıcısı başarısız olursa ne olur?
- 11. İfade çok karmaşık bir şekilde başarısız olursa
- 12. 1 Bir programın çıkışını
- 13. vhdl girişine bir bloğun çıkışını geri bildirim
- 14. bash: Komut
- 15. bash komut
- 16. Bash komut istemi kısaltması
- 17. Strongloop: İşlem Kancası başarısız olursa bir hatayı nasıl döndürürsünüz?
- 18. İthalat başarısız olursa MSBuild projesi yüklenmez mi?
- 19. Bash komut dosyası eksik ']'
- 20. bir bash komut dosyasında zincirleme komutları (borular) ile işleme hatası?
- 21. İplik nasıl durdurulur Cevabın onaylanması başarısız olursa Jmeter
- 22. BASH komut dosyasında bir uzak sistemde nasıl bir komut yürütürsünüz?
- 23. Çözümleme başarısız olursa Yönlendirme Angular 2
- 24. belirleyen isim
- 25. Şefde bir bash komut dosyası nasıl çalıştırılır?
- 26. SQL'i bir bash komut dosyasından nasıl çalıştırıyorsunuz?
- 27. openWithDefaultApplication uygulama klasöründeki dosyalarda başarısız olursa
- 28. Bir posix kapatma çağrısı başarısız olursa ne yapmalı?
- 29. Başarısız olursa, 'apt' görevini yeniden denemek için nasıl yetenekli olabilirim?
- 30. Bir değişkenin bozuk olup olmadığını nasıl kontrol ederim VE bash prelüdümde -u set -u kullanın?
Çok teşekkür ederim, sonuna kadar okumadığım ilgili el kitabı (http://www.faqs.org/docs/bashman/bashref_56.html) son satırları arasında. –
Başhk el kitabı muazzam derecede büyük, bu doğru. (FYI, yeni görünüyorsunuz diye, sorunuza en iyi cevabın altında onay işaretini tıklamak işin bitti, buna "kabul" denir.) – zwol
Ve biçim [--abefhkmnptuvxBCHP] [- o seçenek] [argüman ...] 'gerçekten yanıltıcıdır. Basitçe, geri alma işleminin başka bir yerleşik tarafından yapıldığını, denenmemiş olduğunu ve hiçbir şey almadığını varsaydım. Bash 'set' ve' unset'de tersi olmayan, bash programlama hakkında çok az şey bildiğimi itiraf ederken ilginçtir. –