ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
I am writing a script that will run a gcc command. I want the script to stop executing if the gcc command fails and output something like "script failed" and then just stop.
Is there a way in bash to execute a command and catch errors from it in an if-then-else or something?
"Is there a way in bash to execute a command and catch errors from it in an if-then-else or something?"
Yes. Check the gcc return code within an if statement. Normal completion gives a return code of zero. An error gives a non-zero return code. You can even get fancy and take different actions based on which error code is returned.
Thanks! The $? was exactly what I was looking for. I googled a lot for "command execution return" and stuff but couldn't find a place that said "the return code of the command is in $?" :P
Now you have really triggered my interest. Can Makefile do all that? I am currently using CMake as the build system for my project. Is there a way to create such wonderful Makefiles via CMake?
Ah, that signature just got me going! Here's a third way of doing it:
Code:
#!/bin/bash
cry_murder()
{
if (($? != 0))
then
printf "%s\n" \
"Would you like to take a seat and have a cup of nice" \
"relaxing green tea. I have some bad news for you..." \
>&2
fi
}
trap cry_murder 0 # Execute cry_murder on exit
set -e # If any command returns an error value, exit
echo beg to differ | grep stuff # No stuff, so grep returns 1.
echo That went just swell. # Never executed
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.