Отправить вывод терминала программного обеспечения в файл или / dev / null - PullRequest
0 голосов
/ 29 октября 2018

Я работаю с программой под названием Velvet (которую мы называем ассемблером в биоинформатике). Это программное обеспечение не поставляется с опцией тихого или тихого режима, и у меня есть скрипт, который запускает его несколько раз, заставляя его насыщать мой терминал текстом, который на самом деле не имеет смысла для меня в данный момент (напечатано около 100 строк текста). за итерацию).

Я попытался отправить этот вывод на /dev/null, выполнив это:

[Terminal@Session]$ velvet -option1 -option2 -file1 -file2 > /dev/null

Однако это заставляет оболочку жаловаться на ошибку сегментации, и программное обеспечение фактически не работает вообще. Я чувствую, что это проблема синтаксиса, поскольку попытка отправить материал на /dev/null, как я это сделал, может помешать ожидаемому программному синтаксису и, следовательно, появится ошибка. Я не могу найти решение нигде. Есть ли другой синтаксис, который я могу использовать для перенаправления вывода?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

ОП подтвердил, что мое предложение в комментарии сработало, даже не зная, почему.
Вы можете перенаправить вывод в «нормальные» файлы с помощью

velvet -option1 -option2 -file1 -file2 > /tmp/velvet1.out 2>/tmp/velvet2.out
0 голосов
/ 29 октября 2018

Ваш синтаксис в порядке. Бархат падает, это не вина снаряда. Странно и прискорбно, что он работает по-разному, когда вывод перенаправлен по сравнению с отправкой на терминал, но это не ваша работа. Программы редко заботятся о том, куда перенаправляется стандартный вывод. > /dev/null безопасен для 99 +% программ. (Иногда stderr также необходимо перенаправить, но это другая тема.)

Есть ли в Velvet опция командной строки для более тихого вывода? Многие программы имеют -q или --quiet или что-то подобное.

...