您提到您已经在使用
-x。该变量
PS4表示值是
-x设置选项时在回显命令行之前打印的提示,默认情况下为
:空格。
您可以更改
PS4以发出
LINENO(当前正在执行的脚本或shell函数中的行号)。
例如,如果您的脚本显示为:
$ cat scriptfoo=10echo ${foo}echo $((2 + 2))因此执行它会打印行号:
$ PS4='Line ${LINENO}: ' bash -x scriptLine 1: foo=10Line 2: echo 1010Line 3: echo 44http://wiki.bash-hackers.org/scripting/debuggingtips提供了最终的
PS4输出,该输出将输出您可能需要进行跟踪的所有内容:
export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'


