Итак, я новичок во всей сценарии сценариев Bash, но я работаю над скриптом для компиляции всех файлов .c в каталоге, который мне удалось сделать:Обработка gcc-предупреждений и вывод в сценарии Bash
for F in *.c; do
gcc -c -Wall -o ${F%.c} $F
done
Все работает отлично, но я хочу, чтобы на выходе выглядеть примерно так:
ex1.c Errors
ex2.c OK
ex3.c Warnings
Поэтому в основном я хочу, чтобы иметь статус завершения 0 (Все прошло отлично) для «Ok», статус 1 (Предупреждения, но без ошибок) для «Предупреждений» и статуса 2 (не компилировался) для «Ошибок».
Мне сложно определить, как это сделать. Я искал вокруг и не мог найти ничего, что я нашел полезным. Я очень хорошо мог что-то пропустить.
EDIT: Было бы все равно сказать: если gcc -Wall file.c имеет ошибки, то просто скажите «Ошибка» вместо полного сообщения об обработке ошибок GCC? То же самое с предупреждениями и отличным компилятором?
В bash вы можете 'echo $?' Вернуть статус выхода из предыдущего вызова процесса. Однако, кроме нуля/не-нуля, не будет легкого или даже возможного сопоставления между статусами выхода gcc и тем, что вы хотите. Вы заглядывали в Спок? Я не могу сказать, что вы сосредоточены, будь то о bash или компиляции кучи целевых файлов. Если у вас есть проект, то DAG-ориентированный строитель - это то, что вы хотите. – JayInNyc
Был бы способ сказать: если gcc file.c имеет ошибку, то echo Error? И так далее, и так далее? – TheFatness
Возможный дубликат [Как проверить, не сработал ли gcc, вернул предупреждение или преуспел? (в bash)] (http://stackoverflow.com/questions/1024525/how-to-check-if-gcc-has-failed-returned-a-warning-or-succeeded-in-bash) – dtmland