找到回显出现在bash脚本中的行号

时间:2013-11-07 15:08:46

标签: bash shell

可以按照标题中的说法使以下bash脚本正常工作吗?

#!/bin/bash

echo_report() {
    echo "echo on line $1"
}

trap 'echo_report $LINENO' [sigspec]

#same code here

echo "hi"

#more code here

我不知道我应该为[sigspec] ...

使用什么

如果无法使用trap,我还有其他选择吗?

1 个答案:

答案 0 :(得分:5)

在函数中换行echo,然后使用caller显示行号:

#!/bin/bash

echo() {
    caller
    command echo "$@"
}

echo "hi"

结果:

$ bash foo.bash
8 foo.bash
hi