从文件中读取时如何保持反斜杠?

pal*_*ler 15 bash

当我使用"cat test.file"时,它会显示

printf "This is a test log %d \n, testid";
 1
  2
Run Code Online (Sandbox Code Playgroud)

当我使用bash文件时

IFS=""
while read data
do
    echo "$data"
done << test.file
Run Code Online (Sandbox Code Playgroud)

它会显示出来

printf "This is a test log %d n, testid";
 1
  2
Run Code Online (Sandbox Code Playgroud)

"\"消失了.

有什么方法可以同时保留"\"和空格吗?

Lyn*_*nch 26

尝试使用read -r.

从手册页:

-r
如果给出此选项,则反斜杠不会充当转义字符.反斜杠被认为是该行的一部分.特别是,反斜杠 - 换行符对不能用作行继续.

执行此操作来测试它:

read -r a < <(echo "test \n test"); echo $a
Run Code Online (Sandbox Code Playgroud)