使用cat和EOF生成 shell 脚本时会自动解析变量的解决办法
Posted lavin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用cat和EOF生成 shell 脚本时会自动解析变量的解决办法相关的知识,希望对你有一定的参考价值。
之前使用以下的用法,执行时会自动执行``里的语句,同时会把$变量变为空。
cat <<- EOF >> /usr/local/reboot.sh
#!/bin/sh
DAY=`date +"%Y-%m-%d %H:%M"`
echo "$DAY reboot" >> /usr/local/reboot.log
reboot
EOF
执行结果:
#!/bin/sh
DAY=2016-09-03 17:11
echo " reboot" >> /usr/local/reboot.log
reboot
查到的解决办法:
cat > /usr/local/reboot.sh <<‘EOF‘
#!/bin/sh
DAY=`date +"%Y-%m-%d %H:%M"`
echo "$DAY reboot" >> /usr/local/reboot.log
reboot
EOF
注意第一个EOF要带引号。这种写法还支持使用>>追加文本。
参考: http://www.linuxyw.com/linux/wenjianguanli/20130427/132.html
https://www.zhujimi.net/102.html
以上是关于使用cat和EOF生成 shell 脚本时会自动解析变量的解决办法的主要内容,如果未能解决你的问题,请参考以下文章