使用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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM