cat EOF标准输入时出现$符号,默认会将$符号识别为变量,如果想保留$符号,则需要对$符号使用反斜杠\进行转义。
例:在$变量前增加\转义,保留$符号
1 2 3 4 |
cat >> /etc/profile << EOF export MYSQL_HOME=/usr/local/mysql export PATH=\$PATH:\$MYSQL_HOME/bin EOF |
虽然我们这里通过\转义实现了$变量符号不变,那么如果存在多个变量的场景,一个一个的配置转义?
所以,当cat EOF存在多个变量场景需要转义时,我们可以在EOF上增加""双引号进行解决
例:EOF使用双引号,保留$符号
1 2 3 4 |
cat >> /etc/profile << "EOF" export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin EOF |
原文链接:cat EOF变量$转义处理,转载请注明来源!