info linux

Linux Exit Code 0 - Success

Understanding Linux exit code 0 - the command or program completed successfully without errors.

What It Means

Exit code 0 indicates that a command or program executed successfully without any errors. In Unix/Linux systems, an exit code of 0 is universally understood as success, while any non-zero exit code indicates some form of failure.

This is the standard return value for programs that complete their task as expected.

Common Causes

  • A command completed its task without encountering any errors
  • A script ran all its steps successfully
  • A program exited normally after completing its work
  • A test suite passed all tests
  • A build process completed without failures

How to Fix

Exit code 0 means everything worked correctly. Here’s how to use it properly in your scripts:

Checking exit codes in bash

# The special variable $? holds the last exit code
ls /tmp
echo $?  # Output: 0

# Using exit codes in conditionals
if command_that_might_fail; then
  echo "Command succeeded (exit code 0)"
else
  echo "Command failed (exit code $?)"
fi

Explicitly returning success in scripts

#!/bin/bash

# Do some work
process_data

# Exit explicitly with success
exit 0

Using in CI/CD pipelines

# GitHub Actions - the step succeeds when exit code is 0
steps:
  - name: Run tests
    run: npm test  # Exits 0 if all tests pass

  - name: Build
    run: npm run build  # Exits 0 if build succeeds

Using with logical operators

# && runs the next command only if the previous exits 0
npm install && npm test && npm run build

# || runs the next command only if the previous exits non-zero
npm test || echo "Tests failed!"

In Makefiles

test:
	npm test  # Make treats exit 0 as success, continues
	echo "All tests passed"

# Ignoring exit codes
clean:
	-rm -f *.tmp  # The dash prefix ignores non-zero exit codes