【问题描述】

当采用cat与EOF组合添加多行内容时,若含有变量,则追加后的文件中是变量对应的的值,并不是变量本身。

如$a对应的值为111,执行以下命令后

cat >> /etc/profile << EOF
$a
$a
EOF

/etc/profile文件中最后两行内容为111与111,而不是我们所期望的$a与$a。

wKioL1ZcaqqwSAdbAAFUEA3c1yE543.jpg

【解决办法】

此问题也非常容易解决,只需在所有的$符号前面加一个转义"\"就可以了

wKioL1Zcaxihmt6uAADkwYZie7Y498.jpg