1 #!/usr/bin/env bash
2 #
3 # Constructs borrowed from ksh. Hm I didn't realize zsh also implements these!
4 # mksh implements most too.
5
6 #### C-style for loop
7 n=10
8 for ((a=1; a <= n ; a++)) # Double parentheses, and naked 'n'
9 do
10 if test $a = 3; then
11 continue
12 fi
13 if test $a = 6; then
14 break
15 fi
16 echo $a
17 done # A construct borrowed from ksh93.
18 ## status: 0
19 ## STDOUT:
20 1
21 2
22 4
23 5
24 ## N-I mksh status: 1
25 ## N-I mksh stdout-json: ""
26
27 #### For loop with and without semicolon
28 for ((a=1; a <= 3; a++)); do
29 echo $a
30 done # A construct borrowed from ksh93.
31 for ((a=1; a <= 3; a++)) do
32 echo $a
33 done # A construct borrowed from ksh93.
34 ## status: 0
35 ## STDOUT:
36 1
37 2
38 3
39 1
40 2
41 3
42 ## N-I mksh status: 1
43 ## N-I mksh stdout-json: ""
44
45 #### For loop with empty head
46 a=1
47 for ((;;)); do
48 if test $a = 4; then
49 break
50 fi
51 echo $((a++))
52 done # A construct borrowed from ksh93.
53 ## status: 0
54 ## STDOUT:
55 1
56 2
57 3
58 ## N-I mksh status: 1
59 ## N-I mksh stdout-json: ""