Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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
add comment

2 Answers

up vote 7 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
add comment

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

share|improve this answer
1  
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
add comment

Your Answer

 
discard

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.