grade=$( {./a.out 2>/dev/null || echo 0; } | tail -n 1 )
Это попытается выполнить ./a.out
, а затем добавить строку с одним 0
в свой вывод, если эта программа завершилась с не -нулевым статусом выхода или вообще не смогла выполниться. 0
будет пойман tail -n 1
и помещен в $grade
.
Если ./a.out
выполняется правильно и завершается с нулевым статусом выхода, echo
не срабатывает.
Удалите перенаправление стандартной ошибки на /dev/null
, если вы заинтересованы в просмотре диагностических сообщений, связанных с запуском ./a.out
.
Измените 0
на "$?"
, чтобы вместо этого получить код выхода. Чтобы иметь возможность отличить число от ошибки, вы можете вместо этого использовать NaN
или какую-либо строку ошибки.