summaryrefslogtreecommitdiff
path: root/doc/usage/cmd/for.rst
blob: f9e504979c3311cc4b6131467385113104847fca (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
for command
===========

Synopis
-------

::

    for <variable> in <items>; do <commands>; done

Description
-----------

The for command is used to loop over a list of values and execute a series of
commands for each of these.

The counter variable of the loop is a shell variable. Please, keep in mind that
an environment variable takes precedence over a shell variable of the same name.

variable
    name of the counter variable

items
    space separated item list

commands
    commands to execute

Example
-------

::

    => setenv c
    => for c in 1 2 3; do echo item ${c}; done
    item 1
    item 2
    item 3
    => echo ${c}
    3
    => setenv c x
    => for c in 1 2 3; do echo item ${c}; done
    item x
    item x
    item x
    =>

The first line ensures that there is no environment variable *c*. Hence in the
first loop the shell variable *c* is printed.

After defining an environment variable of name *c* it takes precedence over the
shell variable and the environment variable is printed.

Return value
------------

The return value $? after the done statement is the return value of the last
statement executed in the loop.

::

    => for i in true false; do ${i}; done; echo $?
    1
    => for i in false true; do ${i}; done; echo $?
    0