in zsh, how do I do a conditional on the exit status of a program?

Viewed 23409

I want to do something like:

if [[ git status &> /dev/null ]]; then
   echo "is a git repo";
else
   echo "is not a git repo";
fi

except I don't know how to check the exit status. How do I fix this?

3 Answers

The variable $? contains the last commands return code

EDIT: precise example:

git status &> /dev/null
if [ $? -eq 0 ]; then
  echo "git status exited successfully"
else
  echo "git status exited with error code"
fi

Simply like that

if git status &> /dev/null
then
   echo "is a git repo";
else
   echo "is not a git repo";
fi

Or in a more compact form:

git status &> /dev/null && echo "is a git repo" || echo "is not a git repo"
Related