aboutsummaryrefslogtreecommitdiff
path: root/doc/usage
diff options
context:
space:
mode:
authorTom Rini2024-03-25 22:15:47 -0400
committerTom Rini2024-03-25 22:15:47 -0400
commitab8d9ca3044acf51d8ff3bf3c4718c48f30ad606 (patch)
tree35c2e2eae8ed2cf1dda331b19dd806a33aaad913 /doc/usage
parent8ef8dcc54a0d507912ee57e15a541c5cebcfca76 (diff)
parentdde373bde392c38649c8c4420e0c98ef8d38d9dc (diff)
Merge tag 'v2024.04-rc5' into next
Prepare v2024.04-rc5
Diffstat (limited to 'doc/usage')
-rw-r--r--doc/usage/cmd/if.rst72
-rw-r--r--doc/usage/index.rst1
2 files changed, 73 insertions, 0 deletions
diff --git a/doc/usage/cmd/if.rst b/doc/usage/cmd/if.rst
new file mode 100644
index 00000000000..6b3dbe7b0a0
--- /dev/null
+++ b/doc/usage/cmd/if.rst
@@ -0,0 +1,72 @@
+.. 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.
+
+Example
+-------
+
+The examples shows how the value of a numeric variable can be tested with
+**itest**.
+
+::
+
+ => 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
diff --git a/doc/usage/index.rst b/doc/usage/index.rst
index 0d174eefaa5..66d73e70cc4 100644
--- a/doc/usage/index.rst
+++ b/doc/usage/index.rst
@@ -71,6 +71,7 @@ Shell commands
cmd/gpt
cmd/history
cmd/host
+ cmd/if
cmd/imxtract
cmd/load
cmd/loadb