fonksiyonları ile bash/-e set + e ayarlamak kullanma:Ben script'lerime böyle basit bir bash başlangıcı kullanarak oldum
#!/bin/bash
set -e
modülerliği ile birlikte/işlevlerini kullanarak bu bugün beni ısırdı.
Yani, İdeal, birden çok küçük dosya kullanabilmek için ister başka dosyalara işlevlerini kapsar ve sonra
set +e
foo
rc=$?
set -e
gibi bu işlevleri arayacağımı yere
foo() {
#edit: some error happens that make me want to exit the function and signal that to the caller
return 2
}
gibi bir işlevi olduğunu varsayalım
. Bu, tam olarak iki katman rutini için çalışır. Ancak, foo bunun gibi altyordamları da çağırıyorsa, dönüşten önceki son ayar set -e
olacaktır. Bu, betiğin dönüşte çıkmasını sağlayacaktır - bunu çağrı işlevinde geçersiz kılamam. Peki, ne yapmak zorunda olduğunu bulurum
foo() {
#calling bar() in a shielded way like above
#..
set +e
return 2
}
çok gariptir (ve ayrıca istediğim gibi değil - Ne bazı bağlamlarda ben başka bağlamlarda iken, arızalara karşı koruyucu olmadan işlevini kullanmak istiyorsanız Temizlemeyi halletmek istiyorum?) Bunu işlemenin en iyi yolu nedir? Btw. Bunu OSX'de yapıyorum, bu davranışın Linux'ta farklı olup olmadığını test etmedim.
Bekler misiniz? Bunu arayan kişiye ekledim mi? Kolon ne yapar? –
Geri dönüşü nasıl kötüye kullandığımı genişletebilir misiniz? Nasıl bir işlev içinde hata sinyali vermeyi kastediyorum? (eğer yeterince açık olmasaydım - 'return 2' sadece bir hata durumunda yapılır. –
Sen değilsin, ama sanıyordum. Benim kötü, pardon. – Carpetsmoker