1 ## compare_shells: bash dash mksh zsh ash
2 ## oils_failures_allowed: 2
3
4 # This file relates to:
5 #
6 # - doc/known-differences.md
7 # - "divergence" tag on github:
8 # https://github.com/oils-for-unix/oils/issues?q=is%3Aissue%20state%3Aopen%20label%3Adivergence
9
10 #### xz package: dirprefix="${line##*([}"
11
12 # https://oilshell.zulipchat.com/#narrow/channel/502349-osh/topic/alpine.20xz.20-.20.22.24.7Bline.23.23*.28.5B.7D.22.20interpreted.20as.20extended.20glob/with/519718284
13
14 # NOTE: spec/extglob-match shows that bash respects it
15 #
16 # echo 'strip ##' ${x##@(foo)}
17
18 shopt -s extglob
19
20
21 dirprefix="${line##*([}"
22 echo "-$dirprefix-"
23
24 # Now try with real data
25 line='*([foo'
26 dirprefix="${line##*([}"
27 echo "-$dirprefix-"
28
29 ## STDOUT:
30 --
31 -foo-
32 ## END
33
34 ## N-I mksh/zsh status: 1
35 ## N-I mksh/zsh STDOUT:
36 ## END
37
38
39 #### ((( with nested subshells
40
41 # https://oilshell.zulipchat.com/#narrow/channel/502349-osh/topic/.28.28.28.20not.20parsed.20like.20bash/with/518874141
42
43 # spaces help
44 good() {
45 cputype=`( ( (grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null`
46 }
47
48 bad() {
49 cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null`
50 #echo cputype=$cputype
51 }
52
53 good
54 bad
55
56 ## STDOUT:
57 ## END