之前使用以下的用法,執行時會自動執行``里的語句,同時會把$變量變為空。
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
