| status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
| pass | 0 | 0 | 0 | 0 | 4 | 4 | 0 | 0 | 0 | 0 | |
| FAIL | 4 | 4 | 4 | 4 | 0 | 0 | 4 | 4 | 4 | 4 | |
| total | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | |
| case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | FAIL | FAIL | FAIL | FAIL | pass | pass | FAIL | FAIL | FAIL | FAIL | ${ echo hi;} |
| details | details | details | details | details | details | details | details | ||||
| 1 | FAIL | FAIL | FAIL | FAIL | pass | pass | FAIL | FAIL | FAIL | FAIL | ${ echo hi } without semi-colon |
| details | details | details | details | details | details | details | details | ||||
| 2 | FAIL | FAIL | FAIL | FAIL | pass | pass | FAIL | FAIL | FAIL | FAIL | ${|REPLY=hi} |
| details | details | details | details | details | details | details | details | ||||
| 3 | FAIL | FAIL | FAIL | FAIL | pass | pass | FAIL | FAIL | FAIL | FAIL | for loop / case |
| details | details | details | details | details | details | details | details |
8 passed, 0 OK, 0 not implemented, 0 BUG, 32 failed, 0 timeouts, 0 cases skipped 4 failed under osh
| bash | 0 ${ echo hi;} [bash stdout] Expected '[hi]\n\n[one\ntwo]\n\n[ 3 \n 4 5 ]\n\n' Got '[]\n\n[]\n\n[]\n\n[]\n' [bash status] Expected 1 Got 0 stdout: [] [] [] []stderr: bash: line 1: ${ echo hi;}: bad substitution
bash: line 5: ${ echo one; echo two; }: bad substitution
bash: line 14: ${ myfunc;}: bad substitution
bash: line 18: ${myfunc;}: bad substitution
|
| dash | 0 ${ echo hi;} [dash stdout] Expected '[hi]\n\n[one\ntwo]\n\n[ 3 \n 4 5 ]\n\n' Got '' [dash status] Expected 1 Got 2 stdout: stderr: dash: 1: Bad substitution |
| ash | 0 ${ echo hi;} [ash stdout] Expected '[hi]\n\n[one\ntwo]\n\n[ 3 \n 4 5 ]\n\n' Got '' [ash status] Expected 1 Got 2 stdout: stderr: ash: syntax error: bad substitution |
| zsh | 0 ${ echo hi;} [zsh stdout] Expected '[hi]\n\n[one\ntwo]\n\n[ 3 \n 4 5 ]\n\n' Got '' stdout: stderr: zsh: bad substitution |
| toysh | 0 ${ echo hi;} [toysh stdout] Expected '[hi]\n\n[one\ntwo]\n\n[ 3 \n 4 5 ]\n\n' Got '[]\n\n[]\n\n[]\n\n[]\n' [toysh status] Expected 1 Got 0 stdout: [] [] [] []stderr: main: line 1: sh: : bad substitution main: line 5: sh: : bad substitution main: line 14: sh: : bad substitution |
| sush | 0 ${ echo hi;} [sush stdout] Expected '[hi]\n\n[one\ntwo]\n\n[ 3 \n 4 5 ]\n\n' Got '[]\n\n[]\n\n[]\n\n[]\n' [sush status] Expected 1 Got 0 stdout: [] [] [] []stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: `${ echo hi;}': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: `${ echo one; echo two; }': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 14: `${ myfunc;}': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 18: `${myfunc;}': bad substitution
|
| brush | 0 ${ echo hi;} [brush stdout] Expected '[hi]\n\n[one\ntwo]\n\n[ 3 \n 4 5 ]\n\n' Got '[${echo hi;}]\n\n[${echo one;echo two;}]\n\n[${myfunc;}]\n\n[${myfunc;}]\n' [brush status] Expected 1 Got 0 stdout: [${echo hi;}]
[${echo one;echo two;}]
[${myfunc;}]
[${myfunc;}]
stderr: |
| osh | 0 ${ echo hi;} [osh stdout] Expected '[hi]\n\n[one\ntwo]\n\n[ 3 \n 4 5 ]\n\n' Got '' [osh status] Expected 1 Got 2 stdout: stderr: x=${ echo hi;}
^
[ stdin ]:1: Unexpected token in ${}
|
| bash | 1 ${ echo hi } without semi-colon [bash stdout] Expected '[no-semi]\n[no-space]\n' Got '[]\n[]\n' [bash status] Expected 127 Got 1 stdout: [] []stderr: bash: line 1: ${ echo no-semi }: bad substitution
bash: line 4: ${ echo no-space}: bad substitution
bash: line 7: ${ ~/ysh-tilde-sub }: bad substitution
|
| dash | 1 ${ echo hi } without semi-colon [dash stdout] Expected '[no-semi]\n[no-space]\n' Got '' [dash status] Expected 127 Got 2 stdout: stderr: dash: 1: Bad substitution |
| ash | 1 ${ echo hi } without semi-colon [ash stdout] Expected '[no-semi]\n[no-space]\n' Got '' [ash status] Expected 127 Got 2 stdout: stderr: ash: syntax error: bad substitution |
| zsh | 1 ${ echo hi } without semi-colon [zsh stdout] Expected '[no-semi]\n[no-space]\n' Got '' [zsh status] Expected 127 Got 1 stdout: stderr: zsh: bad substitution |
| toysh | 1 ${ echo hi } without semi-colon [toysh stdout] Expected '[no-semi]\n[no-space]\n' Got '[]\n[]\n' [toysh status] Expected 127 Got 1 stdout: [] []stderr: main: line 1: sh: : bad substitution main: line 4: sh: : bad substitution main: line 7: sh: : bad substitution |
| sush | 1 ${ echo hi } without semi-colon [sush stdout] Expected '[no-semi]\n[no-space]\n' Got '[]\n[]\n' [sush status] Expected 127 Got 1 stdout: [] []stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: `${ echo no-semi }': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: `${ echo no-space}': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: `${ ~/ysh-tilde-sub }': bad substitution
|
| brush | 1 ${ echo hi } without semi-colon [brush stdout] Expected '[no-semi]\n[no-space]\n' Got '[${echo no-semi }]\n[${echo no-space}]\n' [brush status] Expected 127 Got 0 stdout: [${echo no-semi }]
[${echo no-space}]
stderr: |
| osh | 1 ${ echo hi } without semi-colon [osh stdout] Expected '[no-semi]\n[no-space]\n' Got '' [osh status] Expected 127 Got 2 stdout: stderr: x=${ echo no-semi }
^
[ stdin ]:1: Unexpected token in ${}
|
| bash | 2 ${|REPLY=hi} [bash stdout] Expected '[ reply var ]\n\n[from file]\n\n' Got '[]\n\n[]\n\n[]\n' [bash status] Expected 1 Got 0 stdout: [] [] []stderr: bash: line 1: ${|y=" reply var "; REPLY=$y}: bad substitution
bash: line 7: ${|read -r < tmp.txt}: bad substitution
bash: line 11: ${ |REPLY=zz}: bad substitution
|
| dash | 2 ${|REPLY=hi} [dash stdout] Expected '[ reply var ]\n\n[from file]\n\n' Got '' [dash status] Expected 1 Got 2 stdout: stderr: dash: 1: Bad substitution |
| ash | 2 ${|REPLY=hi} [ash stdout] Expected '[ reply var ]\n\n[from file]\n\n' Got '' [ash status] Expected 1 Got 2 stdout: stderr: ash: syntax error: bad substitution |
| zsh | 2 ${|REPLY=hi} [zsh stdout] Expected '[ reply var ]\n\n[from file]\n\n' Got '' stdout: stderr: zsh: bad substitution |
| toysh | 2 ${|REPLY=hi} [toysh stdout] Expected '[ reply var ]\n\n[from file]\n\n' Got '[]\n\n[]\n\n[]\n' [toysh status] Expected 1 Got 0 stdout: [] [] []stderr: main: line 1: sh: : bad substitution main: line 7: sh: : bad substitution main: line 11: sh: : bad substitution |
| sush | 2 ${|REPLY=hi} [sush stdout] Expected '[ reply var ]\n\n[from file]\n\n' Got '[]\n\n[]\n\n[]\n' [sush status] Expected 1 Got 0 stdout: [] [] []stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: `${|y=" reply var "; REPLY=$y}': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: `${|read -r < tmp.txt}': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 11: `${ |REPLY=zz}': bad substitution
|
| brush | 2 ${|REPLY=hi} [brush stdout] Expected '[ reply var ]\n\n[from file]\n\n' Got '[${|y= reply var ;REPLY=}]\n\n[${|read -r <tmp.txt}]\n\n[${|REPLY=zz}]\n' [brush status] Expected 1 Got 0 stdout: [${|y= reply var ;REPLY=}]
[${|read -r <tmp.txt}]
[${|REPLY=zz}]
stderr: |
| osh | 2 ${|REPLY=hi} [osh stdout] Expected '[ reply var ]\n\n[from file]\n\n' Got '' [osh status] Expected 1 Got 2 stdout: stderr: x=${|y=" reply var "; REPLY=$y}
^
[ stdin ]:1: Unexpected token in ${}
|
| bash | 3 for loop / case [bash stdout] Expected '-a-\n-b-\n-a--b-\n\nsh-case\nsh-case\n' Got '\n\n\n\n\n' stdout: stderr: bash: line 1: ${ for i in a b; do echo -$i-; done; }: bad substitution
bash: line 4: ${|for i in a b; do REPLY+="-$i-"; done; }: bad substitution
bash: line 9: ${ case foo in foo) echo sh-case ;; esac; }: bad substitution
bash: line 12: ${|case foo in foo) REPLY=sh-case ;; esac; }: bad substitution
|
| dash | 3 for loop / case [dash stdout] Expected '-a-\n-b-\n-a--b-\n\nsh-case\nsh-case\n' Got '' [dash status] Expected 0 Got 2 stdout: stderr: dash: 1: Bad substitution |
| ash | 3 for loop / case [ash stdout] Expected '-a-\n-b-\n-a--b-\n\nsh-case\nsh-case\n' Got '' [ash status] Expected 0 Got 2 stdout: stderr: ash: syntax error: bad substitution |
| zsh | 3 for loop / case [zsh stdout] Expected '-a-\n-b-\n-a--b-\n\nsh-case\nsh-case\n' Got '' [zsh status] Expected 0 Got 1 stdout: stderr: zsh: bad substitution |
| toysh | 3 for loop / case [toysh stdout] Expected '-a-\n-b-\n-a--b-\n\nsh-case\nsh-case\n' Got '\n\n\n\n\n' stdout: stderr: main: line 1: sh: : bad substitution main: line 4: sh: : bad substitution main: line 9: sh: : bad substitution main: line 12: sh: : bad substitution |
| sush | 3 for loop / case [sush stdout] Expected '-a-\n-b-\n-a--b-\n\nsh-case\nsh-case\n' Got '\n\n\n\n\n' stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: `${ for i in a b; do echo -$i-; done; }': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: `${|for i in a b; do REPLY+="-$i-"; done; }': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: `${ case foo in foo) echo sh-case ;; esac; }': bad substitution
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 12: `${|case foo in foo) REPLY=sh-case ;; esac; }': bad substitution
|
| brush | 3 for loop / case [brush stdout] Expected '-a-\n-b-\n-a--b-\n\nsh-case\nsh-case\n' Got '${for i in a b;do echo --;done;}\n${|for i in a b;do REPLY+=--;done;}\n\n${case foo in foo)echo sh-case ;;esac;}\n${|case foo in foo)REPLY=sh-case ;;esac;}\n' stdout: ${for i in a b;do echo --;done;}
${|for i in a b;do REPLY+=--;done;}
${case foo in foo)echo sh-case ;;esac;}
${|case foo in foo)REPLY=sh-case ;;esac;}
stderr: |
| osh | 3 for loop / case [osh stdout] Expected '-a-\n-b-\n-a--b-\n\nsh-case\nsh-case\n' Got '' [osh status] Expected 0 Got 2 stdout: stderr: x=${ for i in a b; do echo -$i-; done; }
^
[ stdin ]:1: Unexpected token in ${}
|