Bash seems to interpret the multi-line and multi-line argument for the echo command for one line of the source file (script), because Bash must concatenate the multi-string and multi-line argument into the echo command in one (one) argument. The concatenation mechanism is also triggered by an empty string '' , followed by a string containing the newline character echo -e '' + '\n' + $LINENO .
#!/bin/bash # Bash concatenates a multi-string & multi-line argument ... echo ' ' $LINENO ' ' $LINENO ' ' $LINENO # ... into a one line argument. echo -e "' ' $LINENO '\n' $LINENO '\n' $LINENO\n"
#!/bin/bash echo "2 3 4 5 6 LINENO: $LINENO"
#!/bin/bash echo "2" " " " 3 4 5 6 LINENO: $LINENO" # 6 LINENO: 2 # echo -e "2" + " " + "\n3\n4\n5\n6 LINENO: $LINENO" exit
source share