У меня есть команда rm *.o
в Makefile
, чтобы удалить все объектные файлы, сгенерированные во время компиляции. Однако некоторые данные об ошибках будут выводиться, если файл .o
не существует. Итак, как я могу подавить вывод информации об ошибке?Shell - Подавить вывод одной команды
ответ
В контексте make
, что более важно, чем выход, вы не хотите, чтобы make обрабатывал результат rm
как отказ. Есть два способа борьбы с ним:
clean:
-rm *.o 2> /dev/null
rm -f *.o 2> /dev/null
Первый способ заключается в префикс команды со знаком минус, который говорит make
игнорировать код возврата. Это предпочтительный, make
-специальный способ. Во-вторых, используется флаг -f
, который относится только к rm
.
Кроме того, вы можете подавить выход с помощью 2> /dev/null
или нет.
rm -f *.o
или
rm *.o >& /dev/null
В редких случаях, это может также быть необходимым, чтобы перенаправить вывод в /dev/null
. Вероятно, вы захотите сделать rm *.o > /dev/null 2>&1
. Часть > /dev/null
отправляет stdout в /dev/null
, а 2>&1
говорит, что отправляет stderr туда, куда идет stdout.
Я не считаю, что 'rm' использует стандартный вывод вообще. – chepner
Зависит от того, был ли rm псевдонимом rm -v. Большинство систем этого не делают, это, вероятно, привычка, которую я взял с давних пор, когда какой-то дистрибутив подумал, что это хорошая идея. – Steve
Я вижу, что в справочной странице BSD упоминаются исторические реализации, которые будут запрашивать стандартный вывод. – chepner
- 1. Как подавить вывод из этой команды Shell
- 2. Как подавить вывод команды?
- 3. Как подавить вывод команды из файла makefile?
- 4. Перенаправить вывод одной команды более чем одной команды
- 5. Подавить вывод на основе переменной
- 6. Как я могу подавить вывод команды при использовании backticks?
- 7. Как подавить вывод консоли команды сборки в waf?
- 8. Подавить вывод от QNMinimizer
- 9. Подавить вывод JavaExec Gradle
- 10. Как подавить вывод
- 11. Как подавить вывод subprocess.run()?
- 12. Python подавить вывод оболочки
- 13. Подавить предупреждающий вывод от Nuget.exe
- 14. Как подавить вывод в Sublime Text cmd?
- 15. Команды Emacs и Long Shell
- 16. iPhone Shell, вывод для вывода
- 17. Добавить выход одной команды на вывод другого в одной команде
- 18. Как сравнить вывод команды со строкой в Shell Script
- 19. Как я могу получить вывод команды pry shell?
- 20. Как увидеть вывод команды в командной строке grunt-shell?
- 21. Shell Script: прочитайте вывод для запуска следующей команды
- 22. Как подавить вывод из sp_configure?
- 23. Как подавить вывод `DBCC SHRINKFILE`?
- 24. Подавить вывод задачи Perforce Ant
- 25. Подавить делаю вывод ошибок правила
- 26. Подавить в стандартный вывод subprocess.check_output()
- 27. Подавить вывод консоли в PowerShell
- 28. Как подавить вывод в RStudio?
- 29. Подавить вывод определенного огурца шаги
- 30. Doctests: Как подавить/проигнорировать вывод?
Вы должны быть осторожны с обозначениями '> &'. Он отлично работает в 'bash', но не работает в' dash'. Так как 'dash' отлично действует с учетом тегов в вопросе, нецелесообразно использовать'> & '. –