.. _cmd-end: end - end a block of commands ============================= Synopsis -------- | **begin** | [*COMMANDS* ...] | **end** | **function** *NAME* [*OPTIONS*]; *COMMANDS* ...; **end** | **if** *CONDITION*; *COMMANDS_TRUE* ...; [**else**; *COMMANDS_FALSE* ...;] **end** | **switch** *VALUE*; [**case** [*WILDCARD* ...]; [*COMMANDS* ...]; ...] **end** | **while** *CONDITION*; *COMMANDS* ...; **end** | **for** *VARNAME* in [*VALUES* ...]; **COMMANDS** ...; **end** Description ----------- The **end** keyword ends a block of commands started by one of the following commands: - :ref:`begin ` to start a block of commands - :ref:`function ` to define a function - :ref:`if `, :ref:`switch ` to conditionally execute commands - :ref:`while `, :ref:`for ` to perform commands multiple times The **end** keyword does not change the current exit status. Instead, the status after it will be the status returned by the most recent command.