1 |
# |
2 |
# Tests for the blog. |
3 |
# |
4 |
# Fun game: try to come up with an expression that behaves differently on ALL |
5 |
# FOUR shells. |
6 |
|
7 |
#### ${##} |
8 |
set -- $(seq 25) |
9 |
echo ${##} |
10 |
## stdout: 2 |
11 |
|
12 |
#### ${###} |
13 |
set -- $(seq 25) |
14 |
echo ${###} |
15 |
## stdout: 25 |
16 |
## N-I osh stdout-json: "" |
17 |
## N-I osh status: 2 |
18 |
|
19 |
#### ${####} |
20 |
set -- $(seq 25) |
21 |
echo ${####} |
22 |
## stdout: 25 |
23 |
## N-I osh stdout-json: "" |
24 |
## N-I osh status: 2 |
25 |
|
26 |
#### ${##2} |
27 |
set -- $(seq 25) |
28 |
echo ${##2} |
29 |
## stdout: 5 |
30 |
## N-I osh stdout-json: "" |
31 |
## N-I osh status: 2 |
32 |
|
33 |
#### ${###2} |
34 |
set -- $(seq 25) |
35 |
echo ${###2} |
36 |
## stdout: 5 |
37 |
## BUG mksh stdout: 25 |
38 |
## N-I osh stdout-json: "" |
39 |
## N-I osh status: 2 |
40 |
|
41 |
#### ${1####} |
42 |
set -- '####' |
43 |
echo ${1####} |
44 |
## stdout: ## |
45 |
|
46 |
#### ${1#'###'} |
47 |
set -- '####' |
48 |
echo ${1#'###'} |
49 |
## stdout: # |
50 |
|
51 |
#### ${#1#'###'} |
52 |
set -- '####' |
53 |
echo ${#1#'###'} |
54 |
# dash and zsh accept; mksh/bash/osh don't. |
55 |
## status: 2 |
56 |
## stdout-json: "" |
57 |
## OK dash/zsh status: 0 |
58 |
## OK dash stdout: 4 |
59 |
## OK zsh stdout: 1 |
60 |
## N-I bash/mksh status: 1 |