# 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:

- 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 keyword does not change the current exit status. Instead, the status after it will be the status returned by the most recent command.