chcę mieć działanie porządki w moich skryptach bash tak:Pobierz kod wyjścia skryptu powłoki w „pułapkę EXIT”
#! /bin/bash
set -eu
trap 'echo "E: failed with exitcode $?" 1>&2' ERR
true
false
Korzystanie $?
przyszło na myśl jako naturalny wybór, ale to tak nie jest. Zawsze zawiera 0
. Czy jest jakiś sposób, że mogę "szpiegować" na ekwipunku w pułapce ERR
?
[Aktualizacja:] Nie mam pojęcia, co testowałem wcześniej. Ten kod działa jak urok, więc zostawiam go tutaj jako mały i dobry przykład.
myślę '$' jest poprawne. Twój skrypt wypisuje "1" dla mnie. – dogbane
Hah, wiem, co poszło nie tak. Kiedy testowałem tę funkcję, napisałem jedną linijkę i błędnie zacytowałem. Mówiąc "pułapki" echo wychodzące z $? " ERR' wyraźnie nie działa, ponieważ '$?' Jest oceniany w _definicji_ działania 'pułapki'. –
Dla każdego, kto szuka, [podobne pytanie jest tutaj] (http://stackoverflow.com/q/32086595/471376). – JamesThomasMoon1979