Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4103603
  • 博文数量: 504
  • 博客积分: 13065
  • 博客等级: 上将
  • 技术积分: 9190
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-26 16:44
个人简介

https://github.com/eyjian

文章分类

全部博文(504)

文章存档

2018年(7)

2017年(24)

2016年(37)

2015年(78)

2014年(56)

2013年(40)

2012年(89)

2011年(6)

2010年(19)

2009年(58)

2008年(90)

分类: LINUX

2017-08-28 19:49:49

crontab条目中包含%号,最常见的取时间,如:date +%d,
对%需要使用\进行转义,否则不能按预期执行,正确做法为:
* * * * * echo "`date +\%d`" > /tmp/r1r.txt
而不能为
* * * * * echo "`date +%d`" > /tmp/r1r.txt


%是crontab的特殊字符,所有%后的被当作了标准输入,这可以通过“ man 5 crontab”查看到说明:
The entire command portion of the line, up to a newline or a "%" character,
will be executed by /bin/sh or by the shell specified in the SHELL variable of the cronfile.
A "%" character in the command, unless escaped with a backslash (\), 
will be changed into newline char-acters,
and all data after the first % will be sent to the command as standard input.


示例:
$ cat /tmp/hello.txt 
cat: /tmp/hello.txt: 没有那个文件或目录
$ echo -e "`crontab -l`\n* * * * * cat > /tmp/hello.txt % hello word"|crontab -
$ crontab -l|grep hello.txt
* * * * * cat > /tmp/hello.txt % hello word
$ cat /tmp/hello.txt 
 hello word
阅读(270) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册