File: begin.txt

package info (click to toggle)
fish 3.0.2-2%2Bdeb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 36,448 kB
  • sloc: ansic: 75,559; cpp: 43,314; sh: 9,096; javascript: 7,710; python: 2,538; makefile: 1,461; objc: 709; perl: 367; xml: 18
file content (46 lines) | stat: -rw-r--r-- 1,291 bytes parent folder | download
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
\fish{synopsis}
begin; [COMMANDS...;] end
\endfish

\subsection begin-description Description

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

A block 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`.

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

`begin` does not change the current exit status itself. After the block has completed, `$status` will be set to the status returned by the most recent command.


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

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

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

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