Почти все различия между программами, запущенными из вашей оболочки и из cron
, имеют отношение к среде.
Первое, что нужно сделать, это запустить что-то вроде env
в обоих местах и захватить вывод. Это может быть что-то столь же простое, как запуск другого исполняемого файла, потому что пути разные.
Другая возможность заключается в том, что настройка LC_COLLATE
отличается в двух средах. Со страницы info
:
Прежде чем можно будет использовать comm
, входные файлы должны быть отсортированы с использованием последовательности сортировки, указанной в локали LC_COLLATE
.
Опция --check-order
может быть способом проверить это, вызывая фатальную ошибку при несортированном вводе (включая несортированный на основе сопоставления, отличного от того, который, по вашему мнению, используется).