1 |
#!/bin/bash |
2 |
|
3 |
### Remove const suffix |
4 |
v=abcd |
5 |
echo ${v%d} ${v%%cd} |
6 |
# stdout: abc ab |
7 |
|
8 |
### Remove const prefix |
9 |
v=abcd |
10 |
echo ${v#a} ${v##ab} |
11 |
# stdout: bcd cd |
12 |
|
13 |
### Remove const suffix is vectorized on user array |
14 |
a=(1a 2a 3a) |
15 |
argv.py ${a[@]%a} |
16 |
# stdout: ['1', '2', '3'] |
17 |
# N-I dash/mksh stdout-json: "" |
18 |
|
19 |
### Remove const suffix is vectorized on $@ array |
20 |
set -- 1a 2a 3a |
21 |
argv.py ${@%a} |
22 |
# stdout: ['1', '2', '3'] |
23 |
# N-I dash stdout: ['1a', '2a', '3'] |
24 |
# N-I mksh stdout-json: "" |
25 |
|
26 |
### Remove const suffix from undefined |
27 |
echo ${undef%suffix} |
28 |
# stdout: |
29 |
|
30 |
### Remove smallest glob suffix |
31 |
v=aabbccdd |
32 |
echo ${v%c*} |
33 |
# stdout: aabbc |
34 |
|
35 |
### Remove longest glob suffix |
36 |
v=aabbccdd |
37 |
echo ${v%%c*} |
38 |
# stdout: aabb |
39 |
|
40 |
### Remove smallest glob prefix |
41 |
v=aabbccdd |
42 |
echo ${v#*b} |
43 |
# stdout: bccdd |
44 |
|
45 |
### Remove longest glob prefix |
46 |
v=aabbccdd |
47 |
echo ${v##*b} |
48 |
# stdout: ccdd |
49 |
|