shell下cat EOF中变量$处理
在使用cat EOF中出现$
变量通常会直接被执行,显示执行的结果。若想保持$
变量不变需要使用 \
符进行注释
[root@localhost ~]# cat >> aa.txt << EOF
> echo \$aa
> EOF
[root@localhost ~]# cat aa.txt
echo $aa
当存在$
变量过多,或存在赋值命令的时候可直接在EOF上加上双引号就行。这时就不用使用\
进行注释了。
[root@localhost ~]# cat >> bb.txt << "EOF"
> echo $aa
> EOF
[root@localhost ~]# cat bb.txt
echo $aa