Skip to main content
6 of 6
Add correct syntax hints, break into list
AdminBee
  • 23.6k
  • 25
  • 55
  • 77
echo "anything" | { grep e || true; }

Explanation:

  • This will throw an error
    $ echo "anything" | grep e
    $ echo $?
    1
    
  • This will not throw an error
    $ echo "anything" | { grep e || true; }
    $ echo $?
    0
    
  • DopeGhoti's "no-op" version (Potentially avoids spawning a process, if true is not a builtin), this will not throw an error
    $ echo "anything" | { grep e || :; }
    $ echo $?
    0
    

The || means "or". If the first part of the command "fails" (meaning grep e returns a non-zero exit code) then the part after the || is executed, succeeds and returns zero as the exit code (true always returns zero).

John N
  • 2.1k
  • 1
  • 16
  • 17