Я знаю, что вы можете использовать 'caller', чтобы получить обратный след вызовов функций в bash:
#! /bin/bash
Backtrace () {
echo "Backtrace is:"
i=0
while caller $i
do
i=$((i+1))
done
}
myFunc () {
Backtrace
}
myFunc
Отпечатки:
Backtrace is:
11 myFunc ./test.sh
13 main ./test.sh
Мой вопрос, скажем, у меня естьскрипт, который использует 'set -e' для завершения при любой непроверенной ошибке.Можно ли получить номер строки, в которой произошел сбой скрипта (и его вызывающих)
Я пытался наивно делать: trap 'Backtrace' EXIT, но это дает мне '1 main ./test.sh'а не номер строки ошибочной команды