Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在从 bash 脚本运行以下命令:
comm -23 file1 file2 > file3
(file1&file2被删除并首先排序)
file1
file2
这会产生一个file3包含唯一的行file1(我想要的)。
file3
从命令行运行脚本时,没有问题。但是,当它从 运行时crontab,它会产生一个更大(不正确)的file3. 手动运行时用户与crontab登录用户相同。
crontab
关于什么会导致这种差异的任何线索?
提前致谢
从 shell 和内部运行的程序之间的几乎所有差异cron都与环境有关。
cron
首先要做的是env在这两个地方运行类似的东西并捕获输出。由于路径不同,它可能就像运行不同的可执行文件一样简单。
env
另一种可能性是LC_COLLATE两种环境之间的设置不同。从info页面:
LC_COLLATE
info
在comm可以使用之前,输入文件必须使用LC_COLLATE区域设置指定的排序顺序进行排序。
comm
该--check-order选项可能是一种检查方法,导致未排序的输入出现致命错误(包括基于与您认为正在使用的不同排序规则的未排序)。
--check-order