
Я пытаюсь перенаправить вывод ssss-combine
в файл, но пока безуспешно.
Я попробовал основные действия: > file
, 2>&1 > file
и tee file
, но они всегда отображаются на экране, а в файл ничего не помещается.
решение1
Хотя вы не указалиточныйкоманду, которую вы выполняете, и поэтому трудно сказать наверняка, я предполагаю, что ваша команда выводит данные в стандартный дескриптор файла ошибок (он же stderr), а не в stdout.
Перенаправления перенаправляют > file
только | tee file
stdout, но не stderr.
2>&1 > file
не делает ни то, что вы ищете. Сначала он перенаправляет ошибку туда, где в данный момент находится stdout, то есть в ваш эмулятор терминала, изатемперенаправляет stdout (и только stdout, а не stderr) в файл.
Вы можете использовать 2>file
для перенаправления stderr или поменять местами два перенаправления в предыдущем примере: >file 2>&1
для перенаправления обоих потоков в один и тот же файл. Порядок важен, так как они оцениваются слева направо. На этот раз вы сначала перенаправляете вывод в файл, а затем ошибку в текущее местоположение вывода (которое уже является этим файлом).
решение2
Хитрость заключается в использовании script -c 'ssss-combine ...' output.txt
(потому что ssss не выводит на stdout)