1

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

comm -23 file1 file2 > file3

file1&file2被删除并首先排序)

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

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

关于什么会导致这种差异的任何线索?

提前致谢

4

1 回答 1

2

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

首先要做的是env在这两个地方运行类似的东西并捕获输出。由于路径不同,它可能就像运行不同的可执行文件一样简单。

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

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

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

于 2011-11-14T05:31:47.140 回答