| 1 | ## compare_shells: mksh
|
| 2 | ## oils_failures_allowed: 4
|
| 3 |
|
| 4 | # Features that bash 5.3 may implement
|
| 5 |
|
| 6 | #### ${ echo hi;}
|
| 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 | #### ${ echo hi } without semi-colon
|
| 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 | #### ${|REPLY=hi}
|
| 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 | #### for loop / case
|
| 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
|