| .. SPDX-License-Identifier: GPL-2.0-or-later |
| |
| .. index:: |
| single: if (command) |
| |
| if command |
| ========== |
| |
| Synopsis |
| -------- |
| |
| :: |
| |
| if <test statement> |
| then |
| <statements> |
| fi |
| |
| if <test statement> |
| then |
| <statements> |
| else |
| <statements> |
| fi |
| |
| Description |
| ----------- |
| |
| The if command is used to conditionally execute statements. |
| |
| test statement |
| Any command. The test statement set the $? variable. If the value of |
| $? becomes 0 (true) the statements after the **then** statement will |
| be executed. Otherwise the statements after the **else** statement. |
| |
| Examples |
| -------- |
| |
| The examples shows how the value of a numeric variable can be tested with |
| the :doc:`itest <itest>` command. |
| |
| :: |
| |
| => a=1; if itest $a == 0; then echo true; else echo false; fi |
| false |
| => a=0; if itest $a == 0; then echo true; else echo false; fi |
| true |
| |
| In the following example we try to load an EFI binary via TFTP. If loading |
| succeeds, the binary is executed. |
| |
| :: |
| |
| if tftp $kernel_addr_r shellriscv64.efi; then bootefi $kernel_addr_r; fi |
| |
| Return value |
| ------------ |
| |
| The value of $? is the return value of the last executed statement. |
| |
| :: |
| |
| => if true; then true; else true; fi; echo $? |
| 0 |
| => if false; then true; else true; fi; echo $? |
| 0 |
| => if false; then false; else false; fi; echo $? |
| 1 |
| => if true; then false; else false; fi; echo $? |
| 1 |
| => if false; then true; fi; echo $? |
| 1 |