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