【问题描述】

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

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

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

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

采用cat与EOF组合添加多行内容时防止变量解析的解决办法_技巧

【解决办法】

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

采用cat与EOF组合添加多行内容时防止变量解析的解决办法_技巧_02