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 ${} |