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

本文介绍了一种在Shell脚本中使用cat命令结合EOF进行多行内容添加时,如何正确处理变量以确保文件中保留变量名而非直接插入变量值的方法。通过在变量前添加转义字符,可以实现这一目标。

【问题描述】

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

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

1
2
3
4
cat  >>  /etc/profile  << EOF
$a
$a
EOF

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

wKioL1ZcaqqwSAdbAAFUEA3c1yE543.jpg

【解决办法】

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

wKioL1Zcaxihmt6uAADkwYZie7Y498.jpg



本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1718355,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值