/ bin / sh:语法错误:未终止的带引号的string
我想获得一个cronjobpipe道输出到指定的(文件夹)位置的date文件。
我的crontab条目看起来像这样:
* * * * * /some/path/test.sh >> $(date "+/home/oompah/logs/%Y%m%d.test.log")
我不明白的是,当我在控制台input这个命令,我得到正确的string:
echo $(date "+/home/oompah/logs/%Y%m%d.test.log") /home/oompah/logs/20110329.test.log
什么原因导致这个错误,我该如何解决?
bash版本信息是:
GNU bash,版本4.1.5(1)-release(x86_64-pc-linux-gnu)
你应该去掉你的crontab中的百分号:
* * * * * /some/path/test.sh >> $(date "+/home/oompah/logs/\%Y\%m\%d.test.log")
百分号( %
)符号在crontabs中有特殊的含义。 它们被解释为换行符。
把date命令放在脚本里面。 cron
不一定运行你认为是的shell。
确保你的脚本中有第一行#!/bin/bash
。 另外,如bmargulies
所述,如果可能的话,把date
命令放在脚本里面。