With shell scripts, it becomes difficult at times to debug which command took too long, or at which step has an issue. Even though I add generous amount of debug logs there are times where -x (execution trace) is invaluable. But I don't want to litter my regular logs with the -x output either!
So, after a bit of search found this nice snippet of bash:
trace_file() {
exec 4>>"$1"
BASH_XTRACEFD=4
set -x
}
So, after a bit of search found this nice snippet of bash:
trace_file() {
exec 4>>"$1"
BASH_XTRACEFD=4
set -x
}
With this function defined, I can invoke it in any script, with the path to trace file:
trace_file /tmp/mytrace