KSH — захватить код возврата скрипта перед выходом

Как в KSH я мог перехватить сигнал EXIT, а также получить код выхода для скрипта?

Приведенный ниже тест выводит «О выходе из сценария с кодом возврата 0». Я бы хотел, чтобы вместо этого он выводил 4 из кода возврата команды выхода.

#!/usr/bin/ksh

trapped_exit() {
 typeset rc=$1

 echo "(LOG SCRIPT EXECUTION & RETURN CODE)"

 echo "About to exit script with return code $rc."
}

trap 'APP_RC=$?; trapped_exit $APP_RC' EXIT

exit 4

ksh
person Zac    schedule 07.05.2012    source источник


Ответы (1)


Я думаю, что могу связать команду выхода со своей функцией. В этой функции я проверю, что команда выхода была вызвана из моего идентификатора процесса, а не из дочернего процесса, путем сравнения с ранее определенной глобальной переменной. Если это из моего PID, я запущу свой код очистки. И, наконец, вызовите настоящую команду выхода с теми же аргументами.

person Zac    schedule 08.05.2012