Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to run an executable in Linux, and regardless of the exit status that it returns, I want to return a good exit status. (i.e. no error.)

(This is because I'm using sh -ex and I want the script to keep running even if one (specific) command fails.)

share|improve this question
up vote 18 down vote accepted

Give this a try:

command || true

From man bash:

The shell does not exit if the command that fails is part of the command list immediately following a while or until keyword, part of the test following the if or elif reserved words, part of any command executed in a && or ⎪⎪ list except the command following the final && or ⎪⎪, any command in a pipeline but the last, or if the command's return value is being inverted with !.

share|improve this answer
also a good one :) – voretaq7 Jan 28 '11 at 19:53

Try (executable ; exit 0), or alternatively wrap it in a shell script that always exits 0.

share|improve this answer
This works fine for most cases, but it sets up a subshell so if, for example, (cd foo; exit 0) is successful, you won't end up in "foo" afterwards since your cwd is returned to the one you were in previously. However, cd foo || true will leave you in "foo" if it's successful. – Dennis Williamson Jan 28 '11 at 20:02
good point -- if your process has additional side effects (setting environment variables, changing directories, etc.) this won't work out. – voretaq7 Jan 28 '11 at 20:38

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.