Bash If Else Statement
Bash If Else : If-else statement is used for conditional branching of program (script) execution between two paths.
An expression is associated with the if statement. If the expression evaluates to true, statements of if block are executed. If the expression evaluates to false, statements of else block are executed.
In this tutorial, we will go through Syntax and usage of if-else statement with examples.
Bash If Else is kind of an extension to Bash If statement.
Syntax of Bash If Else
Syntax of If Else statement in Bash Shell Scripting is as given below :
if <expression>; then
<commands>
else
<other_commands>
fi
where
Code | Description |
---|---|
<expression> | Set of one or more conditions joined using conditional operators. |
<commands> | Set of commands to be run when the <condition> is true. |
<other_commands> | Set of commands to be run when the <condition> is false. |
Observe that if
, then
, else
and fi
are keywords. The semi-colon (;) after the conditional expression is must.
Example 1 : Bash If Else Statement
In this example, we shall look into two scenarios where in first if-else statement, expression evaluates to true and in the second if-else statement, expression evaluates to false.
Bash Shell Script
#!/bin/bash
# if condition is true
if [ "hello" == "hello" ];
then
echo hello == hello : is true condition
else
echo hello == hello : is false condition
fi
# if condition is false
if [ "hello" == "bye" ];
then
echo hello == bye : is true condition
else
echo hello == bye : is false condition
fi
Output
~$ ./bash-if-else-example
hello == hello : is true condition
hello == bye : is false condition
In the first if-else expression, condition is true and hence the statements in the if block are executed. Whereas in the second if-else expression, condition is false and hence the statements in the else block are executed.
Example 2 : Bash If Else – Multiple Conditions
In this example, we shall look into a scenario where if expression has multiple conditions. Multiple conditions in an expression are joined together using bash logical operators.
Bash Shell Script
#!/bin/bash
# FALSE && TRUE || FALSE || TRUE evaluates to TRUE
if [[ 8 -eq 11 && "hello" == "hello" || 1 -eq 3 ]];
then
echo "True condition"
else
echo "False condition"
fi
Output
~$ ./bash-if-else-multiple-conditions-example
False condition
The expression after if keyword evaluated to false. Therefore program execution skipped if block statements and executed else block statements.
Bash If Else Statement in One Line
If Else statement along with commands in if and else blocks could be written in a single line.
To write complete if else statement in a single line, follow the syntax that is already mentioned with the below mentioned edits :
- End the statements in if and else blocks with a semi-colon (;).
- Append all the statements with a space as delimiter.
In the following example, we will write an if else statement in a single line.
Bash Shell Script
#!/bin/bash
if [ "hello" == "hello" ]; then echo "statement 1"; echo "statement 2"; else echo "statement 3"; echo "statement 4"; fi
if [ "hello" == "hi" ]; then echo "statement 5"; echo "statement 6"; else echo "statement 7"; echo "statement 8"; fi
Output
~$ ./bash-if-else-single-line
statement 1
statement 2
statement 7
statement 8
Bash Nested If Else
If Else can be nested in another if else. Following is an example for the same.
Bash Shell Script
#!/bin/bash
if [ "hello" == "hello" ]; then
if [ "hello" == "hi" ]; then
echo "statement 1";
else
echo "statement 2";
fi
else
echo "statement 3";
fi
According to the expressions, statement 2
should be echoed to the console. Let us see the output.
Output
statement 2
if, if-else and else-if statements could be nested in each other.
Conclusion
In this Bash Tutorial, we have learnt about the syntax and usage of bash if else statement with example bash scripts.