可以按照标题中的说法使以下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
,我还有其他选择吗?
答案 0 :(得分:5)
在函数中换行echo
,然后使用caller
显示行号:
#!/bin/bash
echo() {
caller
command echo "$@"
}
echo "hi"
结果:
$ bash foo.bash
8 foo.bash
hi