Search code examples
bashshellscriptingbooleansh

How can I declare and use Boolean variables in a shell script?


I tried to declare a Boolean variable in a shell script using the following syntax:

variable=$false

variable=$true

Is this correct? Also, if I wanted to update that variable would I use the same syntax? Finally, is the following syntax for using Boolean variables as expressions correct?

if [ $variable ]

if [ !$variable ]

Solution

  • Revised Answer (Feb 12, 2014)

    the_world_is_flat=true
    # ...do something interesting...
    if [ "$the_world_is_flat" = true ] ; then
        echo 'Be careful not to fall off!'
    fi
    

    Original Answer

    Caveats: https://stackoverflow.com/a/21210966/89391

    the_world_is_flat=true
    # ...do something interesting...
    if $the_world_is_flat ; then
        echo 'Be careful not to fall off!'
    fi
    

    From: Using boolean variables in Bash

    The reason the original answer is included here is because the comments before the revision on Feb 12, 2014 pertain only to the original answer, and many of the comments are wrong when associated with the revised answer. For example, Dennis Williamson's comment about Bash's builtin true on Jun 2, 2010 only applies to the original answer, not the revised.