EOF多行写入文件防止变量替换

问题描述

  对多个变量及多行输出到文件,存在变量自动替换,当使用cat<<EOF不想对内容进行变量替换、命令替换、参数展开等

问题解决

  转义特殊字符如 $ `等

 

一、对 $·\ 进行转义

cat >> a.sh << EOF
echo \`hostname\`
echo \$HOME
EOF

 

二、在分界符EOF前添加反斜杠\,或者用单引号、双引号括起来

cat >> a.sh << \EOF
echo `hostname`
echo $HOME
EOF

cat >> a.sh << "EOF"
echo `hostname`
echo $HOME
EOF


cat >> a.sh << 'EOF'
echo `hostname`
echo $HOME
EOF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值