Replace `while read line; do echo $line; done < TEST.txt`
with "`while read line; do echo $line; done < TEST.txt`"
, or preferably "$(<TEST.txt)"
.
read
strips characters in IFS
from the start and end of lines. read
also interprets backslashes without -r
. echo $line
strips and collapses characters in IFS
.
$ echo ' aa a\\a'|while read l;do echo $l;done
aa a\a
$ echo ' aa a\\a'|while read l;do echo "$l";done
aa a\a
$ echo ' aa a\\a'|while read -r l;do echo "$l";done
aa a\\a
$ echo ' aa a\\a'|while IFS= read -r l;do echo "$l";done
aa a\\a