У меня есть простой скрипт:Как ловушка ERR при использовании «набор -e» в Bash
#!/bin/bash
set -e
trap "echo BOO!" ERR
function func(){
ls /root/
}
func
Я хотел бы ловушкой ERR, если мой сценарий не удается (как это будет здесь б/с я не имеют разрешения на просмотр в/root). Однако при использовании set -e
он не попадает в ловушку. Без set -e
ERR в ловушке.
Согласно странице человека Баш, для set -e
:
... Ловушка на ERR, если он установлен, выполняется перед выходом из оболочки. ...
Почему моя ловушка не выполнена? С man-страницы это похоже на то, что нужно.
В стороне: лучше использовать _single-quote_ своих обработчиков ловушек, если вы явно не хотите, чтобы в нем были добавлены переменные ссылки расширенные _up front_. – mklement0