使用cat和EOF生成 shell 脚本时会自动解析变量的解决办法

作者: 主机迷 发布: 2016-09-04 05:20 分类: Linux技术

之前使用以下的用法,执行时会自动执行``里的语句,同时会把$变量变为空。

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


标签: 无

上一篇 : 更新CentOS系统时间的命令

下一篇 : 国家版权局通报“剑网2016”专项行动

添加新评论 »


主机迷 is powered by Typecho