หากคุณต้องการที่จะสามารถที่จะจัดการกับข้อผิดพลาดแทนที่จะสุ่มสี่สุ่มห้าออกแทนการใช้set -e
ใช้trap
ในERR
สัญญาณหลอก
#!/bin/bash
f () {
errorCode=$? # save the exit code as the first thing done in the trap function
echo "error $errorCode"
echo "the command executing at the time of the error was"
echo "$BASH_COMMAND"
echo "on line ${BASH_LINENO[0]}"
# do some error handling, cleanup, logging, notification
# $BASH_COMMAND contains the command that was being executed at the time of the trap
# ${BASH_LINENO[0]} contains the line number in the script of that command
# exit the script or return to try again, etc.
exit $errorCode # or use some other value or do return instead
}
trap f ERR
# do some stuff
false # returns 1 so it triggers the trap
# maybe do some other stuff
กับดักอื่น ๆ ที่สามารถตั้งค่าที่จะจัดการกับสัญญาณอื่น ๆ รวมทั้งสัญญาณ Unix ปกติบวกสัญญาณทุบตีหลอกอื่น ๆและRETURN
DEBUG