| case | dash | bash | mksh | zsh | osh | osh_ALT | description |
| 0 | pass | pass | pass | pass | pass | pass | If |
| 1 | pass | pass | pass | pass | pass | pass | else |
| 2 | pass | pass | pass | pass | pass | pass | elif |
| 3 | pass | pass | pass | pass | pass | pass | Long style |
| 4 | pass | pass | pass | pass | pass | pass | If empty command |
| 5 | pass | pass | pass | pass | pass | pass | If subshell true |
| 6 | pass | pass | pass | pass | pass | pass | If subshell true WITH OUTPUT is different |
| 7 | pass | pass | pass | pass | pass | pass | If subshell true WITH ARGUMENT |
| 8 | pass | pass | pass | pass | FAIL | FAIL | If subshell false |
| details | details |
52 passed, 0 ok, 0 known unimplemented, 0 known bugs, 1 failed, 0 skipped
| osh | 8 If subshell false [osh stdout] Expected 'FALSE\n', got 'TRUE\n' stdout: TRUEstderr: |
| osh_ALT | 8 If subshell false [osh_ALT stdout] Expected 'FALSE\n', got 'TRUE\n' stdout: TRUEstderr: |