How to Check a Boolean If True or False in Bash [Easy Guide]

LINUX
FUNDAMENTALS
A Complete Guide for Beginners Enroll Course Now

Bash does not include any distinct Boolean data type, rather Boolean logic can be utilized by defining variables with integer values such as 0 and 1 or strings such as ‘False’ and ‘True’. In Bash, 0 (zero) remarks ‘false’, and 1 (or any non-zero integer) remarks ‘true’, which represent Boolean states. In this article, I will state how you can implement the if statement for different variations in Bash to check whether a Boolean (value or Boolean-like variable) is true or false.

What is ‘if True’ or ‘if False’ Construct in Bash?

In Bash, the ‘if true’ or ’if false’ construct is the block of code that executes when a certain condition evaluates to ‘true’ or ‘false’ inside the ‘if’ statement. This explicit set of instructions within the conditional statement controls the execution of the script and determines the Boolean values of the script. The basic syntaxes of these constructs are as follows:

Basic Syntax of ‘if true’:

if true; then   
    #Code to execute 
fi

Basic Syntax of ‘if false’:

if false; then
  #Code to execute
fi

5 Ways to Check if a Boolean Value is True in Bash

To check if a Boolean value is true, Bash offers several options like the ‘test’ command, “[[ ]]” command, “(( ))” command, and “-eq” operator. Also, a direct comparison of a Boolean-like variable within an ‘if’ conditional can be performed to accomplish the Boolean check.

In the following part, I will discuss 5 ways to check whether a Boolean value is true in Bash:

1. Using “test” Command With “=” Operator

The ‘test’ command can be represented as an equivalent test operator “[ ]” which is helpful for any conditional checking in Bash. So, to check if a Boolean value is ‘true’, you can use the syntax if [ "$boolean_variable" = true ]. Here’s an example:

#!/bin/bash

#Declaring a boolean variable as true
boolean_variable=true

#Checking if the boolean variable is true
if [ "$boolean_variable" = true ]; then
    echo "The Boolean is true"
fi
EXPLANATION

The script first declares a variable boolean_variable as ‘true’, checks if the variable is true using the “=” operator within the test command “[ ]” and then displays the output using the echo command.

Checking if Boolean value is true by using the test command "[ ]"

The above image portrays that when I inserted the ‘test’ command within the ‘if’ conditional, it satisfied the condition and so is the result ‘The Boolean is true’.

A similar process can be implemented to check if a Boolean value is false where you need to assign the Boolean-like variable as ‘false’. In that case, use the syntax: [ "$boolean_variable" = false ].

2. Placing Variable Directly With ‘if’ Conditional

Placing a variable directly with a conditional and expanding its value is another way to check if a Boolean value is actually true or not and it requires a very simple syntax i.e. if $boolean_variable. Here’s a demonstration for you:

#!/bin/bash

#Declaring a boolean variable as true
boolean_variable=true

#Checking if the boolean variable is true
if $boolean_variable; then
    echo "The Boolean is true"
fi
EXPLANATION

First, the script declares a variable as ‘true’. Then, it encounters an ‘if’ statement and expands the value of the boolean_variable directly to check if it is true. If it satisfies the condition, the script echoes the specific result for the ‘if true’ section.

Checking if Boolean value is true by using the variable directly

From the above image, you can see that when I used the variable directly inside the ‘if’ conditional, it satisfied the condition and addressed that the value is ‘true’.

3. Utilizing “[[ ]]” Command With “==” Operator

The “[[ ]]” command works in the same way as “[ ]” but it’s the improved version that offers more flexibility and control over pattern matching and complicated conditional checks.

To check if a Boolean value is true, you can use this “[[ ]]” command with the string equality operator “==” following the syntax if [[ $boolean_variable == true ]]. Here’s an example for you to get a clear hint:

#!/bin/bash

#Declaring a boolean variable as true
boolean_variable=true

#Checking if the boolean variable is true
if [[ $boolean_variable == true ]]; then
    echo "The Boolean is true"
fi
EXPLANATION

The above script checks if the value of the declared variable is actually true by using the “==” operator within the “[[ ]]” command and prints the output accordingly using the echo command.

Checking if Boolean value is true by using the "[[ ]]" command with the string equality operator "=="

This image shows that the declared Boolean variable satisfies the true condition.

Same method can be implemented to check if a Boolean value is false where you need to assign the Boolean-like variable as ‘false’. In that case, use the syntax: if [[ $boolean_variable == false ]].

4. Leveraging “(( ))” Command

In Bash, “(( ))” emerges as a powerful command for arithmetic expansion operations. So, leverage this command using the syntax if (( $boolean_variable )) to check if the Boolean value is true. Check out the following example:

#!/bin/bash

#Declaring a boolean variable as true
boolean_variable=1

#Checking if the boolean variable is true
if (( $boolean_variable )); then
    echo "The Boolean is true"
fi
EXPLANATION

The above script checks whether the declared variable is actually holding a non-zero value using the “(( ))” command and if it does so, the script displays the true output using the echo command.

Checking if Boolean value is true by using the "(( ))" command

The above image is a clear indication of Boolean evaluation where the “(( ))” command interprets the Boolean-like variable as true for the non-zero value ‘1’.

5. Using “-eq” Operator Within “[[ ]]”

The “-eq” operator can be used for Boolean checks explicitly though it is designed for numeric equality checking. So, if you want to check if a Boolean value is true, use the syntax if [[ $boolean_variable -eq 1 ]]. Follow the example:

#!/bin/bash

#Declaring a boolean variable as true
boolean_variable=1

#Checking if the boolean variable is true
if [[ $boolean_variable -eq 1 ]]; then
    echo "The Boolean is true"
fi
EXPLANATION

The script declares boolean_variable as 1 (non-zero integer remarks ‘true’) and then performs a checking by using the “-eq” operator inside the “[[ ]]”. Lastly, it displays the output employing the echo command if the variable is equal to the assigned value.

Checking if Boolean value is true by using the numeric equality operator "-eq"

In the above image, you can see that the Boolean-like variable becomes true when it equals the non-zero integer value ‘1’.

Similar process can be implemented to check if a Boolean value is false where you need to assign the Boolean-like variable as ‘0’. In that case, use the syntax: if [[ $boolean_variable == 0 ]].

2 Ways to Check if a Boolean Value is False in Bash

To check if a Boolean value is false, Bash offers various options like the NOT (!) operator, “(( ))” command, ‘test’ command, “[[ ]]” command, and “-eq” operator.

The process using the ‘test’ command, “[[ ]]” command, and “-eq” operator is already discussed in the previous section. So, I will give an overview of 2 different ways to check whether a Boolean value is false in Bash in the subsequent portion:

1. Utilizing Logical NOT (!) Operator

The NOT (!) operator always negates the value of an assigned variable in Bash.

Use the syntax if ! $is_boolean to check if a Boolean value is false. Here’s how:

#!/bin/bash

#Declaring a boolean variable as false
is_boolean=false

#Checking if the boolean variable is false
if ! $is_boolean; then
    echo "The Boolean is false."
fi
EXPLANATION

In the script, after declaring is_boolean as ‘false’, the ‘if’ conditional checks whether the variable is not true i.e. false, and if it meets the condition, the script echoes the output ‘The Boolean is false.’.

Check if Boolean value is false by using the NOT (!) operator

From the above image, you can see that using the NOT (!) operator, I have easily checked the falseness of a Boolean variable in Bash.

2. Using “(( ))” Command With “==” Operator

Alternatively, you can check if a Boolean value is false using the “(( ))” command with an equality checking operator “==” inside an ‘if’ statement. if (( is_boolean == 0 )) is the syntax you need to use to do so. For instance:

#!/bin/bash

#Declaring a boolean variable as false
is_boolean=0

#Checking if the boolean variable is false
if (( is_boolean == 0 )); then
    echo "The Boolean is false."
fi
EXPLANATION

In this script, the ‘if’ conditional checks whether the numeric value of the declared variable is_boolean is ‘0’. The check is done using the “(( ))” command generally used for arithmetic operations. When the condition becomes true, it means the Boolean value is equal to 0 which represents ‘false’ and so the script prints ‘The Boolean is false.’.

Checking if Boolean value is false by using the "(( ))" command with the string equality operator "=="

The above image states that the assigned Boolean-like variable is false represented numerically in the script.

Conclusion

So far, you have learned several ways to check whether a Boolean-like variable or Boolean value is true or false. Just choose the method that fits your script’s requirements and suits the data type you are dealing with. Happy coding!

People Also Ask

Can I use commands other than ‘true’ for the true condition?

Yes, Bash gives you the flexibility to replace ‘true’ with any command that consistently returns a zero exit status.

How can I prompt the user for boolean input and check it in Bash?

To prompt the user for Boolean input, use the ‘read’ command and to check it in bash, use the syntax [[ $boolean_input == true ]] or [ "$boolean_input" = "true" ].

Are there dedicated boolean operators in Bash?

No, there are no dedicated Boolean operators in Bash. But numeric and string equality operators like ‘==’ or ‘-eq’ can be used for Boolean checks.

Are there any alternative constructs or commands for boolean checks in Bash?

Yes, there are alternatives for Boolean checks in Bash such as functions, ‘case’ statements, and ternary operators.

Can I use logical operators with ‘if true’ and ‘if false’ to create more complex conditions?

Yes, you can use logical operators like ‘&& (AND)’  ‘|| (OR)’ with ‘if true’ and ‘if false’ inside an ‘if’ statement to create more complex conditions and validate multiple Boolean-like variables in Bash. For example:

#!/bin/bash

#Declaring three Boolean-like variables
boolean_variable1=false
boolean_variable2=true
boolean_variable3=true

#Checking multiple Boolean values
if [ "$boolean_variable1" == false ] || [ "$boolean_variable2" == true ] &&  [ "$boolean_variable3" == true ]; then
    echo "Satisfied complex Boolean conditions"
fi

Related Articles


<< Go Back to If Statement in Bash | Bash Conditional Statements | Bash Scripting Tutorial

Rate this post
Nadiba Rahman

Hello, This is Nadiba Rahman, currently working as a Linux Content Developer Executive at SOFTEKO. I have completed my graduation with a bachelor’s degree in Electronics & Telecommunication Engineering from Rajshahi University of Engineering & Technology (RUET).I am quite passionate about crafting. I really adore exploring and learning new things which always helps me to think transparently. And this curiosity led me to pursue knowledge about Linux. My goal is to portray Linux-based practical problems and share them with you. Read Full Bio

Leave a Comment