summaryrefslogtreecommitdiffhomepage
path: root/shell/ash_test/ash-arith/arith2.sub
blob: 29f9471d628c8e4a643c58df7fedfbb792effb17 (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
# ++ and -- are not inc/dec operators on non-variables, they are + + and - - sequences
(  echo $(( --7 ))   )
(  echo $(( ++7 ))   )
(  echo $(( -- 7 ))  )
(  echo $(( ++ 7 ))  )

#ash# ((++array[0] ))
#ash# echo 1 $array
#ash# (( ++ array[0] ))
#ash# echo 2 $array

#ash# (( ++a ))
#ash# echo 1 $a
#ash# (( ++ a ))
#ash# echo 2 $a

#ash# (( --a ))
#ash# echo 1 $a
#ash# (( -- a ))
#ash# echo 0 $a
      a=0

echo 5 $(( 4 + ++a ))
echo 1 $a

# this is treated as 4 + ++a
echo 6 $(( 4+++a ))
echo 2 $a
      a=2

# this is treated as 4 - --a
echo 3 $(( 4---a ))
echo 1 $a
      a=1

echo 4 $(( 4 - -- a ))
echo 0 $a

#ash# (( -- ))
# -- is not a dec operator on non-variable, it is the - - sequence
echo $(( ---7 ))
(  echo $(( -- - 7 ))  )

#ash# (( ++ ))
# ++ is not a inc operator on non-variable, it is the + + sequence
echo $(( ++7 ))
(  echo $(( ++ + 7 ))  )

# bash 3.2: -7
#ash# echo -7 $(( ++-7 ))
# bash 3.2: -7
#ash# echo -7 $(( ++ - 7 ))

# bash 3.2: 7
#ash# echo 7 $(( +--7 ))
# bash 3.2: 7
#ash# echo 7 $(( -- + 7 ))