比如
我在crontab -e中用命令
echo -e “`date ‘+%s’`\t$RANDOM” > /tmp/xxx
的话
命令行直接用没有问题
但写在cron里的时候
‘%’需要转义成’\%’
原因还没找到
原因终于找到了
在linux下看crontab的帮助
man 5 crontab
里有这么一段:

Percent-signs (%) in the command,
unless escaped with backslash (\), will be changed into newline charac-
ters, and all data after the first % will be sent to the command as
standard input.

大概意思是说
在cron文件的第六列,也就是命令列
百分号(%)被赋予了特殊含义
被看做是换行符,而且,其后面的内容被当做命令的标准输入

所以,要想正常使用百分号(%)的功能
需要在其前面添加转义符(\)

学习了一下。


2 Responses to “crontab中命令行中的百分号(%)需要做转义”

  1. 1 失眠怎么办

    确实是不错~~~~~~

  2. 2 wukoo

    特别偶然看到这篇文章,突然解决了我的问题,谢谢!

Leave a Reply





文章归档