| 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
|