我有一个测试脚本,其中有很多命令,并将生成大量的输出,我使用 set -x或 set -v和 set -e,所以脚本将停止时,错误发生。然而,我仍然很难找到执行停止的那一行来定位问题。
是否有一种方法可以在每行执行之前输出脚本的行号?
或者输出 set -x生成的命令展示前的行号?
或任何方法,可以处理我的脚本行定位问题将是一个很大的帮助。
谢谢。
In a fairly sophisticated script I wouldn't like to see all line numbers; rather I would like to be in control of the output.
定义一个函数
echo_line_no () {
grep -n "$1" $0 | sed "s/echo_line_no//"
# grep the line(s) containing input $1 with line numbers
# replace the function name with nothing
} # echo_line_no
Use it with quotes like
echo_line_no "this is a simple comment with a line number"