# 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

`end` ends a block of commands started by one of the following commands:

- begin to start a block of commands

- function to define a function

- if, switch to conditionally execute commands

- while, for to perform commands multiple times

The `end` command does not change the current exit status. Instead, the status after it will be the status returned by the most recent command.