从crontab运行时,linux comm会产生不同的结果

时间:2011-11-14 05:28:59

标签: cron comm

我从bash脚本运行以下命令:

comm -23 file1 file2 > file3

file1& file2先被删除并排序)

这会产生一个file3,其中只包含file1唯一的行(我想要的)。

从命令行运行脚本时,没有问题。但是,当它从crontab运行时,会产生更大(不正确)的file3crontab用户与手动运行时的登录用户相同。

任何导致这种差异的线索?

提前致谢

1 个答案:

答案 0 :(得分:2)

从shell运行的程序与cron内的程序之间几乎所有的差异都与环境有关。

要做的第一件事就是在两个地方运行类似env的内容并捕获输出。它可能像运行不同的可执行文件一样简单,因为路径不同。

另一种可能性是LC_COLLATE设置在两种环境之间是不同的。来自info页面:

  

在使用comm之前,必须使用LC_COLLATE区域设置指定的整理顺序对输入文件进行排序。

--check-order选项可能是一种检查方式,导致未排序输入时出现致命错误(包括根据您认为正在使用的不同排序规则进行排序)。