linux EOF输出问题 变量转义 含有$符号问题
案例一 基础使用
[root@localhost zookeeper]# cat a.sh
#!/bin/bash
cat >>a.txt <EOF
#测试文档
192.168.50.132 node2
EOF
[root@localhost zookeeper]# bash a.sh
[root@localhost zookeeper]# cat a.txt
#测试文档
192.168.50.132 node2
[root@localhost zookeeper]#
案例二
[root@localhost zookeeper]# vim b.sh
#!/bin/bash
#输出环境变量
cat >>a.txt <<EOF
"JAVA_HOME" $JAVA_HOME
echo "==============================="
EOF
#输出变量名称 加 双引号
cat >>a.txt <<"EOF"
"JAVA_HOME" $JAVA_HOME
echo "==============================="
EOF
##既有环境变量 又要输出$1变量字符 加入 \
##
cat >>a.txt <<EOF
echo \$1 "JAVA_HOME" $JAVA_HOME
echo "==============================="
EOF
[root@localhost zookeeper]# echo "" >a.txt
[root@localhost zookeeper]# bash b.sh 参数1测试
[root@localhost zookeeper]# cat a.txt