linux EOF输出问题 变量转义 含有$符号问题


案例一 基础使用

[root@localhost zookeeper]# cat a.sh
#!/bin/bash
cat >>a.txt #测试文档
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 <"JAVA_HOME" $JAVA_HOME
echo "==============================="
EOF

#输出变量名称  加 双引号
cat >>a.txt <<"EOF"
"JAVA_HOME" $JAVA_HOME
echo "==============================="
EOF

##既有环境变量 又要输出$1变量字符  加入 \
##
cat >>a.txt < 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