| case | dash | bash | mksh | osh | description |
| 0 | pass | ok | ok | FAIL | Bad env name: hyphen |
| details | details | details | |||
| 1 | pass | ok | ok | FAIL | Bad env name: period |
| details | details | details | |||
| 2 | pass | pass | pass | pass | Bad var sub |
| 3 | pass | ok | ok | pass | Bad braced var sub -- not allowed |
| details | details | ||||
| 4 | BUG | BUG | BUG | pass | Bad var sub caught at parse time |
| details | details | details | |||
| 5 | pass | pass | pass | pass | Pipe with while |
| 6 | pass | pass | pass | pass | Length of length of ARGS! |
| 7 | pass | pass | pass | pass | Length of length of ARGS! 2 digit |
| 8 | pass | pass | pass | pass | $1 .. $9 are scoped, while $0 is not |
| 9 | pass | pass | pass | pass | Chained && and || -- || has higher precedence? |
| 10 | pass | pass | pass | pass | Pipeline comments |
| 11 | pass | pass | pass | pass | Command block |
| 12 | ok | pass | ok | FAIL | { is its own word, needs a space |
| details | details | details |
38 passed, 8 ok, 0 known unimplemented, 3 known bugs, 3 failed, 0 skipped
| bash | 0 Bad env name: hyphen stdout: stderr: /bin/bash: line 1: export: `FOO-BAR=foo': not a valid identifier |
| mksh | 0 Bad env name: hyphen stdout: stderr: /bin/mksh: <stdin>[1]: export: FOO-BAR=foo: is not an identifier |
| osh | 0 Bad env name: hyphen [osh status] Expected 2, got 0 stdout: stderr: |
| bash | 1 Bad env name: period stdout: stderr: /bin/bash: line 1: export: `FOO.BAR=foo': not a valid identifier |
| mksh | 1 Bad env name: period stdout: stderr: /bin/mksh: <stdin>[1]: export: FOO.BAR=foo: is not an identifier |
| osh | 1 Bad env name: period [osh status] Expected 2, got 0 stdout: stderr: |
| bash | 3 Bad braced var sub -- not allowed stdout: stderr: /bin/bash: line 1: ${%}: bad substitution
|
| mksh | 3 Bad braced var sub -- not allowed stdout: stderr: /bin/mksh: <stdin>[1]: ${%}: bad substitution
|
| dash | 4 Bad var sub caught at parse time stdout: okstderr: |
| bash | 4 Bad var sub caught at parse time stdout: okstderr: |
| mksh | 4 Bad var sub caught at parse time stdout: okstderr: |
| dash | 12 { is its own word, needs a space stdout: stderr: /bin/dash: 1: {ls: not found
|
| mksh | 12 { is its own word, needs a space stdout: stderr: /bin/mksh: <stdin>[1]: syntax error: '}' unexpected |
| osh | 12 { is its own word, needs a space [osh status] Expected 2, got 127 stdout: stderr: Unexpected error in execvpe('{ls', ['{ls'], ...): [Errno 2] No such file or directory
|