begin(1)

NAME
begin -- start a new block of code

  Synopsis

begin; [COMMANDS...;] end

  Description
begin is used to create a new block of code.

The block is unconditionally executed. begin; ...; end is equivalent to if true; ...; end.

begin is used to group a number of commands into a block. This allows the introduction of a new variable scope, redirection of the input or output of a set of commands as a group, or to specify precedence when using the conditional commands like and.

begin does not change the current exit status.

  Example
The following code sets a number of variables inside of a block scope. Since the variables are set inside the block and have local scope, they will be automatically deleted when the block ends.

begin
    set -l PIRATE Yarrr
    ...
end

echo $PIRATE
  This will not output anything, since the PIRATE variable
  went out of scope at the end of the block

In the following code, all output is redirected to the file out.html.

begin
    echo $xml_header
    echo $html_header
    if test -e $file
        ...
    end
    ...
end > out.html