aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc_src/begin.txt
blob: acc269828e6203ddbcd2092316f66bb70f8bca1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
\section begin begin - start a new block of code

\subsection begin-synopsis Synopsis
 <tt>begin; [COMMANDS...;] end</tt>

\subsection begin-description Description

The \c begin builtin is used to create a new block of code. The block
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.

The \c begin command does not change the current exit status.

\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>

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 &gt; out.html
</pre>