Number of Processes Started, by shell and test case ID osh zsh ash dash bash-5 mksh bash-4 osh>min Description 01 ^ ^ ^ ^ ^ ^ ^ echo hi 02 ^^ ^^ ^^ ^^ ^^ ^^ ^^ date 03 ^ ^ ^ ^ ^ ^ ^ date ; 04 ^^ ^^ ^^ ^^ ^^ ^^ ^^ trap 'echo mytrap' EXIT; date 05 ^^ ^^ ^^ ^^ ^^ ^^ ^^ date; echo hi 06 ^^ ^^ ^^ ^^ ^^ ^^ ^^ echo hi; date 07 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ date; date 08 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ { date; date; } 09 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ date; { date; } 10 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ . _tmp/sourced.sh 11 ^^ ^^ ^^ ^^ ^^ ^^ ^^ (echo hi) 12 ^^ ^^ ^^ ^^ ^^ ^^ ^^ (date) 13 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ( ( date ) ) 14 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ( ( date ) ); echo hi 15 ^^ ^^ ^^ ^^ ^^ ^^ ^^ echo hi; (date) 16 ^^ ^^ ^^ ^^ ^^ ^^ ^^ echo hi; (date;) 17 ^^ ^^ ^^ ^^ ^^ ^^ ^^ echo hi; (echo hi;) 18 ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ echo hi; (echo hi; date) 19 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ( echo hi ); echo hi 20 ^^ ^^ ^^ ^^ ^^ ^^ ^^ (date;) > /tmp/out.txt 21 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ (date; echo hi) 22 ^^ ^^ ^^ ^^ ^^ ^^ ^^^ echo $(date) 23 ^^ ^^ ^^ ^^ ^^ ^^ ^^ echo $(echo hi) 24 ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ echo $( ( date ) ) 25 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ echo $( ( date ); echo hi ) 26 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ( echo hi ); echo done 27 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ date | wc -l 28 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ! date | wc -l 29 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ echo a | wc -l 30 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ command echo a | wc -l 31 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^^ command date | wc -l 32 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^^ ! command date | wc -l 33 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ( date ) | wc -l 34 ^^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^ date | read x 35 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ { echo a; echo b; } | wc -l 36 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ { echo a; echo b; } | wc -l; echo done 37 ^^^ ^^^ ^^^ ^^^ ^^^^ ^^^^ ^^^^ { echo a; date; } | wc -l 38 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ( echo a; echo b ) | wc -l 39 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ( echo a; echo b ) | ( wc -l ) 40 ^^^ ^^^ ^^^ ^^^ ^^^^ ^^^^ ^^^^ { echo prefix; ( echo a; echo b ); } | ( wc -l ) 41 ^^ ^^ ^^ ^^ ^^ ^^ ^^ echo hi & wait 42 ^^ ^^ ^^ ^^ ^^ ^^ ^^ date & wait 43 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ echo hi | wc -l & wait 44 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ date | wc -l & wait 45 ^^ ^^ ^^ ^^ ^^ ^^ ^^ trap 'echo mytrap' EXIT; date & wait 46 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ trap 'echo mytrap' EXIT; date | wc -l & wait 47 ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ { trap 'echo mytrap' EXIT; date; } & wait TOTAL 115 115 116 116 119 119 123 Cases where ... OSH isn't the minimum: 0 OSH starts more than bash: 0 OSH starts fewer than bash: 8