Test script: printf "$LINENO " printf "$LINENO " eval ' printf "$LINENO " printf "$LINENO " printf "$LINENO " ' printf "$LINENO\n"
Output on various shells: bash: 1 2 5 6 7 6 (?!) {m,l,pd}ksh: 1 2 0 0 0 6 (?) AT&T ksh88: 1 2 3 3 3 6 AT&T ksh93: 1 2 1 2 3 6 FreeBSD sh: 1 2 1 2 3 6 dash: 1 2 1 2 3 6 yash: 1 2 1 2 3 6 zsh (native): 1 2 1 2 3 6 zsh (sh): 1 2 3 3 3 6 (like ksh88) It is unclear to me why bash starts counting the 'eval' lines at 5. Is this a bug? - M.