====== BASH - Output - Check Exit Status ====== To get the exit status, you use the special parameter **$?** after running the command: command status=$? ---- ===== Check exit status ===== If you don't actually want to store the exit status, but simply want to take an action upon success or failure, just use if: if command; then printf "it succeeded\n" else printf "it failed\n" fi ---- ===== Exit Status from a piped command - use PIPESTATUS ===== What if you want the exit status of one command from a pipeline? If you want the last command's status, no problem -- it's in **$?** just like before. If you want some other command's status, use the PIPESTATUS array. **NOTE:** This is BASH only. In the case of Zsh, it's lower-cased pipestatus). Say you want the exit status of grep in the following: grep foo somelogfile | head -5 status=${PIPESTATUS[0]} ---- Bash 3.0 added a **pipefail** option as well, which can be used if you simply want to take action upon failure of the grep: set -o pipefail if ! grep foo somelogfile | head -5; then printf "uh oh\n" fi ----