bash 陷阱 EXIT $LINENO 始终为 1

Dar*_* Ng 3 bash shell bash-trap

测试文件

#!/bin/bash
set -e
trap 'echo $LINENO' EXIT
/bin/false
Run Code Online (Sandbox Code Playgroud)

跑步

$ ./test.sh
1
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到“/bin/false”的实际行号而不是总是“1”?

Phi*_*ppe 5

你得到 1 因为你捕获了 EXIT。尝试 :

trap ... ERR
Run Code Online (Sandbox Code Playgroud)