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