为什么这作为 crontab 失败但作为脚本工作

为什么这作为 crontab 失败但作为脚本工作

可能的重复:
这两个 cron 作业有什么问题?

我想从包含日期、时间、长数字和长数字的文件中打印格式化输出。我设置LC_NUMERIC为 UTF 并使用%'d标志字符来生成数千个数字分组。

crontab 中的以下行会产生以下错误

/bin/sh: -c: line 0: unexpected EOF while looking for  matching `"'

当 cronjob 运行时。

@daily LC_NUMERIC=en_US.UTF-8 /usr/bin/printf "%s %s %'d %'d\n" \
          $(/usr/bin/tail -n 31 /var/log/bandwidth)

添加换行符以提高可读性

@daily脚本中的相同行(不带)可以正常工作。

我猜想 cron 被这%'d部分噎住了,找不到结束语"。为什么?

答案1

我建议您放入 LC_NUMERIC=en_US.UTF-8 /usr/bin/printf "%s %s %'d %'d\n" $(/usr/bin/tail -n 31 /var/log/bandwidth)一个文件并将其 chmod 为 770 并将该文件名放入 crontab 中。

答案2

要在文件中设置环境变量crontab,您需要将它们放在自己的行上。该设置将影响该行之后的所有 cron 命令。

LC_NUMERIC=en_US.UTF-8
@daily /usr/bin/printf "%s %s %'d %'d\n" $(/usr/bin/tail -n 31 /var/log/bandwidth)

但如果不知道其中的内容,/var/log/bandwidth就不可能说出真正的问题是什么。

相关内容