Я пытаюсь перенаправить вывод ssss-combine в файл, но пока безуспешно.

Я попробовал основы: > file , 2>&1 > file и tee file но он всегда отображается на экране и ничего не помещается в файл.

2 ответа2

0

Хотя вы не указали точную команду, которую вы выполняете, и поэтому трудно сказать наверняка, я предполагаю, что ваша команда печатает в стандартный дескриптор файла ошибок (он же stderr), а не в stdout.

Перенаправления > file или | tee file перенаправляет только стандартный вывод, но не стандартный вывод.

2>&1 > file не делает то, что вы ищете. Сначала он перенаправляет ошибку туда, где находится stdout, который является вашим эмулятором терминала, а затем перенаправляет stdout (и только stdout, а не stderr) в файл.

Вы можете использовать 2>file для перенаправления stderr или поменять местами два перенаправления в предыдущем примере: >file 2>&1 чтобы перенаправить оба потока в один и тот же файл. Порядок важен, так как они оцениваются слева направо. На этот раз вы сначала перенаправляете вывод в файл, а затем ошибку в текущее местоположение вывода (которое уже является этим файлом).

-1

Хитрость заключается в том, чтобы использовать script -c 'ssss-combine ...' output.txt (потому что ssss не выводит на стандартный вывод)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .