Этот вопрос задал вопрос о том, как скрыть ошибку сегментации в скрипте bash, и @yellowantphil предоставил решение: направить вывод куда угодно
Теперь я просматриваю множество переданных репозиториев. от моих учеников. Мне нужно проверить, могут ли исходные коды в каждом репозитории быть скомпилированы, и если да, может ли исполняемый файл работать должным образом.
И я заметил, что некоторые из их исполняемых файлов завершаются с ошибкой с выходным «ошибка сегментации»,Поскольку я хочу скрыть большинство деталей в своем сценарии, я предпочитаю не показывать ничего из этого раздражающего вывода (и, таким образом, я нашел вопрос, упомянутый выше). Тем не менее, я все еще должен знать, что происходит (чтобы пропустить цикл). Что мне теперь делать?
Минимальное воспроизведение этой проблемы:
- Создайте любой исполняемый файл, вызывающий «ошибку сегментации»
- Поместите его в скрипт Bash:
#!/bin/bash
./segfaultgen >/dev/null 2>&1 | :
echo $?
С этим | :
(упомянутым в ответе @ yellowantphil) в следующем предложении показан вывод 0
, который не говорит правду. Однако сообщения об ошибках появляются, если | :
закомментирован. Я также пытался добавить || echo 1
до | :
. Это не работает так же: (