2005-09-20 21:31:55 +08:00
|
|
|
|
|
|
|
\section begin begin - Start a new block of code
|
|
|
|
|
|
|
|
\subsection begin-synopsis Synopsis
|
|
|
|
<tt>begin; [COMMAND;...] end </tt>
|
|
|
|
|
|
|
|
\subsection begin-description Description
|
|
|
|
|
|
|
|
The \c begin builtin is used to create a new block of code. The block
|
2006-07-20 21:33:19 +08:00
|
|
|
is unconditionally executed. <code>begin; ...; end</tt> is equivalent
|
|
|
|
to <tt>if true; ...; end</tt>. The begin command is used to group any
|
|
|
|
number of commands into a block. The reason for doing so is usually
|
|
|
|
either to introduce a new variable scope, to redirect the input or
|
|
|
|
output of a set of commands as a group, or to specify precedence when
|
|
|
|
using the conditional commands like \c and.
|
2005-09-20 21:31:55 +08:00
|
|
|
|
2006-07-13 01:31:41 +08:00
|
|
|
The \c begin command does not change the current exit status.
|
|
|
|
|
2005-09-20 21:31:55 +08:00
|
|
|
\subsection begin-example 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.
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
begin
|
|
|
|
set -x PIRATE Yarrr
|
|
|
|
...
|
|
|
|
end
|
|
|
|
# This will not output anything, since PIRATE went out of scope at the end of
|
|
|
|
# the block and was killed
|
|
|
|
echo $PIRATE
|
|
|
|
</pre>
|
2006-07-20 21:33:19 +08:00
|
|
|
|
|
|
|
In the following code, all output is redirected to the file out.html.
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
begin
|
|
|
|
echo $xml_header
|
|
|
|
echo $html_header
|
|
|
|
if test -e $file
|
|
|
|
...
|
|
|
|
end
|
|
|
|
...
|
|
|
|
|
|
|
|
end > out.html
|
|
|
|
</pre>
|