1 |
## compare_shells: mksh
|
2 |
## oils_failures_allowed: 4
|
3 |
|
4 |
# Features that bash 5.3 may implement
|
5 |
|
6 |
|
7 |
|
8 |
x=${ echo hi;}
|
9 |
echo "[$x]"
|
10 |
echo
|
11 |
|
12 |
# trailing space allowed
|
13 |
x=${ echo one; echo two; }
|
14 |
echo "[$x]"
|
15 |
echo
|
16 |
|
17 |
myfunc() {
|
18 |
echo ' 3 '
|
19 |
echo ' 4 5 '
|
20 |
}
|
21 |
|
22 |
x=${ myfunc;}
|
23 |
echo "[$x]"
|
24 |
echo
|
25 |
|
26 |
# SYNTAX ERROR
|
27 |
x=${myfunc;}
|
28 |
echo "[$x]"
|
29 |
|
30 |
## status: 1
|
31 |
## STDOUT:
|
32 |
[hi]
|
33 |
|
34 |
[one
|
35 |
two]
|
36 |
|
37 |
[ 3
|
38 |
4 5 ]
|
39 |
|
40 |
## END
|
41 |
|
42 |
|
43 |
|
44 |
x=${ echo no-semi }
|
45 |
echo "[$x]"
|
46 |
|
47 |
x=${ echo no-space}
|
48 |
echo "[$x]"
|
49 |
|
50 |
# damn I wanted to take this over! mksh executes it!
|
51 |
x=${ ~/ysh-tilde-sub }
|
52 |
|
53 |
# echo ${ ~/ysh-tilde-sub }
|
54 |
|
55 |
## status: 127
|
56 |
## STDOUT:
|
57 |
[no-semi]
|
58 |
[no-space]
|
59 |
## END
|
60 |
|
61 |
|
62 |
|
63 |
x=${|y=" reply var "; REPLY=$y}
|
64 |
echo "[$x]"
|
65 |
echo
|
66 |
|
67 |
echo ' from file ' > tmp.txt
|
68 |
|
69 |
x=${|read -r < tmp.txt}
|
70 |
echo "[$x]"
|
71 |
echo
|
72 |
|
73 |
# SYNTAX ERROR
|
74 |
x=${ |REPLY=zz}
|
75 |
echo "[$x]"
|
76 |
|
77 |
## status: 1
|
78 |
## STDOUT:
|
79 |
[ reply var ]
|
80 |
|
81 |
[from file]
|
82 |
|
83 |
## END
|
84 |
|
85 |
|
86 |
|
87 |
|
88 |
x=${ for i in a b; do echo -$i-; done; }
|
89 |
echo "$x"
|
90 |
|
91 |
y=${|for i in a b; do REPLY+="-$i-"; done; }
|
92 |
echo "$y"
|
93 |
|
94 |
echo
|
95 |
|
96 |
x2=${ case foo in foo) echo sh-case ;; esac; }
|
97 |
echo "$x2"
|
98 |
|
99 |
y2=${|case foo in foo) REPLY=sh-case ;; esac; }
|
100 |
echo "$y2"
|
101 |
|
102 |
## STDOUT:
|
103 |
-a-
|
104 |
-b-
|
105 |
-a--b-
|
106 |
|
107 |
sh-case
|
108 |
sh-case
|
109 |
## END
|