在variables赋值中丢失回车

如果我像这样在Bash中分配一个variables:

PRIVATE_KEY="$(< ~/.ssh/id_rsa)" 

然后立即将其转储到一个文件中:

 echo $PRIVATE_KEY > tmp.txt 

然后比较这个原来的:

 diff ~/.ssh/id_rsa tmp.txt 

我没有得到一个匹配的所有回车(或者也许是换行)已被剥离在原来的variables分配。 我如何避免这种情况?

将variables回显到文件时使用引号:

 echo "$PRIVATE_KEY" > tmp.txt 

这将保留换行符和间距。